Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
Re: Teilstring suchen
17. Apr 2008, 21:47
Na gut, einen hab ich noch:
Delphi-Quellcode:
type TDynIntArr = array of integer;
TMySearchOption = (soIgnoreCase, //Groß-/Kleinschreibung ignorieren
soSomewhere, //Suchstring kann irgendwo enthalten sein
soIsBeginning); //Suchstring steht am Anfang, weitere Zeichen können folgen
TMySearchOptions = set of TMySearchOption;
procedure SearchSubString(const s, //gesuchter String
Sep: string; //Trennstring
const sList: TStrings; //Liste
var ResultArr: TDynIntArr; //dynamisches Array nimmt Trefferpositionen auf
const Options: TMySearchOptions);
var i: integer;
found: Boolean;
sSearch: string;
begin
SetLength(ResultArr,0);
i := 0;
while (i < sList.Count) do
begin
sSearch := Copy(sList[i],1,Pos(Sep,sList[i]) - 1);
if soIgnoreCase in Options then
begin
if soSomewhere in Options then
found := Pos(AnsiLowerCase(s),AnsiLowerCase(sSearch)) > 0
else if soIsBeginning in Options then
found := Pos(AnsiLowerCase(s),AnsiLowerCase(sSearch)) = 1
else
found := AnsiSameText(s,sSearch);
end
else if soSomewhere in Options then
found := Pos(s,sSearch) > 0
else if soIsBeginning in Options then
found := Pos(s,sSearch) = 1
else
found := AnsiCompareStr(s,sSearch) = 0;
if found then
begin
SetLength(ResultArr,Length(ResultArr) + 1);
ResultArr[High(ResultArr)] := i;
end;
inc(i);
end;
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|
|
Zitat
|