Вниз
Скачать: CL | DM;

Поиск в TStringList, но не просто find, а с частичным совпадением   Найти похожие ветки 

← →
jab~   (2003-10-21 14:29) [0]

У меня есть TStringList
который содержит записи:
0: FRM
1: RES 16A 256
2: BMP GIF JPG

Мне нужно найти в какой строке находится например RES или JPG,
т.е. нужна функция которая искала бы по строкам стринглиста и возвращала бы номер строки в которой встречается указаный текст.
Обычный find не подходит т.к. он ищет с полным совпадением!
var
MyList: TStringList;
Index: Integer;
begin
MyList := TStringList.Create;
MyList.Add("FRM");
MyList.Add("RES 16A 256");
MyList.Add("BMP GIF JPG");
ListBox1.Items.AddStrings(MyList);
if MyList.Find("RES", Index) then Label1.Caption := IntToStr(Index);
MyList.Free;
end;
Это не подходит т.к. он ничего не найдёт в таком случае.


← →
Игорь Шевченко ©   (2003-10-21 14:32) [1]

В цикле, перебором строк, с использованием функций Pos и Copy


← →
Fredericco ©   (2003-10-21 14:40) [2]

Или
Uses Masks;
...
function MatchesMask(const Filename, Mask: string): Boolean;

Почитай в хелпе про нее.


← →
jab~   (2003-10-21 15:00) [3]

Пасиба пасиба.... я написал так:

procedure TForm1.Button1Click(Sender: TObject);
var
MyList: TStringList;
i: Integer;
begin
ListBox1.Items.Clear;
MyList := TStringList.Create;
MyList.Add("BMP");
MyList.Add("FRM");
MyList.Add("JPG JEPG GIF");
MyList.Add("IMG TIFF SCR");
ListBox1.Items.AddStrings(MyList);
For i:=0 to MyList.Count-1 do
begin
if Pos("TIFF",MyList.Strings[i])<>0 then Label1.Caption:=IntToStr(i);
end;
MyList.Free;
end;

:) вроде работает :):):)


← →
Fredericco ©   (2003-10-21 15:13) [4]

Ну и отлично )))
А вот это подправь
if Pos("TIFF",MyList.Strings[i]) >0



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
3-41051
Unlike
2003-10-24 04:24
2003.11.13
Подробный учебник по БД. Очень надо разобраться ...


1-41563
killer
2003-10-27 13:18
2003.11.13
Второй запуск программы


14-42011
isko
2003-10-17 07:24
2003.11.13
directx_9_


1-41457
Вера
2003-10-29 10:42
2003.11.13
Загрузка изобраджения


8-41751
alois
2003-07-09 19:02
2003.11.13
Случайный порядок воспроизведения




   Наверх