Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск фрагментов строки и фрагментов слова. [D7, Win95/98, WinME, NT4, Win2k, WinXP]


Moholith ©   (2007-01-12 22:37:00) 

Товарищи по сети!
Как организовать поиск символа или нескльких символов из строки? И как выбирать фрагмменты ,ограниченные срого определенными символами, из строки?
Зарание благодарен!


Moholith   (2007-01-13 17:27:00) [1]

Спасибо всем!


TUser   (2007-01-13 13:26:00) [2]

http://algolist.manual.ru/search/index.php


kaZaNoVa   (2007-01-12 23:32:00) [3]

program Project1; //Прога поиска подстроки в строках и с исключениями.
uses SysUtils, windows;
const
fVvod = 'log.txt';
fSearch = 'Search.txt';
fResult_y = 'Result_yes.txt';
fResult_n = 'Result_not.txt';
var
f_inData, f_Search, f_Result_y, f_Result_n: textfile;
a: array[1..70000] of string;
info: string; l, k, n, h, p: int64;
{$R *.res}

function CompareSearch: Boolean;
var f: integer;
begin
Result := True;

for f := 1 to l do if pos(lowercase(a[f]), lowercase(info)) > 0 then exit;

Result := False;
end;

begin
if not (FileExists(fVvod) and FileExists(fSearch)) then
begin
  MessageBox(0, 'Нет файлов ввода данных'#13#10#13#10 + fVvod + #13#10 + fSearch, 'Ошибка работа программы невозможна', 0);
  Halt(1);
end;

p := gettickcount;
QueryPerformanceFrequency(h); // HiTicks / second
QueryPerformanceCounter(k);

AssignFile(f_inData, fVvod);
AssignFile(f_Search, fSearch);
AssignFile(f_Result_y, fResult_y);
AssignFile(f_Result_n, fResult_n);

Reset(f_Search);

l := 0;
while (not eof(f_Search)) do begin
  inc(l);
  Readln(f_Search, a[l]);
end;
CloseFile(f_Search);

Reset(f_inData);
ReWrite(f_Result_y);
ReWrite(f_Result_n);

while (not eof(f_inData)) do begin
  Readln(f_inData, info);
  if CompareSearch then Writeln(f_Result_y, info) else Writeln(f_Result_n, info);
end; //info

CloseFile(f_inData);

CloseFile(f_Result_y);
CloseFile(f_Result_n);

QueryPerformanceCounter(n);
MessageBox(0, 'Готово', Pchar(Inttostr(gettickcount - p) + ' ms    (' + (Inttostr(round(1000000 * (n - k) / h))) + ') microsec'), 0);
end.


Eraser   (2007-01-12 23:23:00) [4]


> Moholith   (12.01.07 22:37) 

копай в сторону регулярных выражений.
preg_match поможет :-)


Johnmen   (2007-01-12 23:00:00) [5]

Нахальный ламер тебе товарищ!
:)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо