Форум: "Потрепаться";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизПоиск в 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 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c