![]() |
|
#1
|
|||
|
|||
![]() Можно ли с помощью делфи осуществлять поиск нужного мне слова в файлах *txt, если да, то как???
|
#2
|
|||
|
|||
![]() Можно.
Например (пример не оптимальный, но зато самый простой). Код:
function FindText(AFileName, AText : String; ACaseSensitive : Boolean) : Boolean; var S : TStringList; begin S := TStringList.Create; Try S.LoadFromFile(AFileName); If ACaseSensitive Then Result := Pos(AText,S.Text) > 0 Else Result := Pos(AnsiUpperString(AText),AnsiUpperString(S.Text)) > 0; Finally S.Free; End; end; Перебор файлов сам напишешь? |
#3
|
|||
|
|||
![]() неа ))))
я еще не понял, где мне в этом коде указывать какой именно файл я открываю и как связать поиск со значением, которое я ввожу например в TEdit |
#4
|
|||
|
|||
![]() Я тебе написал функцию, кторая ринимает имя файла и текст. Результат выполнения - есть ли текст в указанном файле (True) или его там нету (False). Дополнительный третий параметр - искать текст с учетом регистра символов или нет.
Итак. - AFileName - полное имя файла - AText - искомый текст - ACaseSensitive - учитывать при поиске регистр или нет. поиск файлов (если тебе нужен не конкретный, а любой) осуществляется с помощью функций FindFirst/FindNext/FindClose. Их использование см. в ФАКе на данном сайте. |
#5
|
|||
|
|||
![]() понял - спс
|
#6
|
|||
|
|||
![]() Не проще так (правда ограничение файла 2Гб):
Код:
var s: string; f: TFileStream; begin f := TFileStream.Create(AFileName, fmOperRead); setlength(s, f.Size); f.Read(s[1], f.Size); f.Free; If ACaseSensitive Then Result := Pos(AText, s) > 0 Else Result := Pos(AnsiUpperString(AText), AnsiUpperString(s)) > 0; end; Admin: Пользуемся тегами для оформления кода! Последний раз редактировалось Admin, 21.05.2008 в 20:14. |
#7
|
|||
|
|||
![]() И чем это проще?
Дополнительными вызовами? Более того, фактически, внутри TStringList именно это и делается (загрузка). |