Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2008, 16:19
Termit-200 Termit-200 вне форума
Прохожий
 
Регистрация: 18.05.2008
Сообщения: 5
Репутация: 10
По умолчанию Поиск в *.txt

Можно ли с помощью делфи осуществлять поиск нужного мне слова в файлах *txt, если да, то как???
Ответить с цитированием
  #2  
Старый 21.05.2008, 17:15
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Можно.

Например (пример не оптимальный, но зато самый простой).

Код:
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  
Старый 21.05.2008, 18:17
Termit-200 Termit-200 вне форума
Прохожий
 
Регистрация: 18.05.2008
Сообщения: 5
Репутация: 10
По умолчанию

неа ))))
я еще не понял, где мне в этом коде указывать какой именно файл я открываю и как связать поиск со значением, которое я ввожу например в TEdit
Ответить с цитированием
  #4  
Старый 21.05.2008, 18:29
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Я тебе написал функцию, кторая ринимает имя файла и текст. Результат выполнения - есть ли текст в указанном файле (True) или его там нету (False). Дополнительный третий параметр - искать текст с учетом регистра символов или нет.
Итак.
- AFileName - полное имя файла
- AText - искомый текст
- ACaseSensitive - учитывать при поиске регистр или нет.

поиск файлов (если тебе нужен не конкретный, а любой) осуществляется с помощью функций FindFirst/FindNext/FindClose. Их использование см. в ФАКе на данном сайте.
Ответить с цитированием
  #5  
Старый 21.05.2008, 18:30
Termit-200 Termit-200 вне форума
Прохожий
 
Регистрация: 18.05.2008
Сообщения: 5
Репутация: 10
По умолчанию

понял - спс
Ответить с цитированием
  #6  
Старый 21.05.2008, 18:49
Phedor Phedor вне форума
Начинающий
 
Регистрация: 28.02.2008
Сообщения: 118
Репутация: 21
По умолчанию

Не проще так (правда ограничение файла 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  
Старый 21.05.2008, 19:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

И чем это проще?
Дополнительными вызовами?
Более того, фактически, внутри TStringList именно это и делается (загрузка).
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:36.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025