Hallo sharkx,
falls ich Dich richtig verstanden habe, dann meinte ich in etwa so:
Delphi-Quellcode:
PROCEDURE TForm1.Button3Click(Sender: TObject);
VAR
NewList : TStringList;
j : Integer;
// logfile auf "[Time] [Tag] und String" durchsuchen
FUNCTION ReadString(path: STRING): STRING;
CONST
searchstring = '[bla] + blaa bluuuub:';
VAR
list : TStringList;
z1, datum, release : STRING;
i, p1, p2 : integer;
BEGIN
list := TStringList.Create;
list.LoadFromFile(path);
// Release parsen
FOR i := 0 TO list.Count - 1 DO
BEGIN
p1 := Pos(searchstring, list[i]);
IF p1 = 0 THEN continue;
z1 := list.Strings[i];
p1 := Pos('[', z1);
p2 := Pos(']', z1);
datum := Copy(z1, p1 + 1, (p2 - p1) - 1);
p1 := Pos(searchstring, z1);
z1 := Copy(z1, p1 + length(searchstring) + 1, length(z1));
p2 := Pos(' ', z1);
release := Copy(z1, 1, p2 - 1);
newlist.Add(datum + ' ' + release)
END;
result := newlist.CommaText;
list.free;
END;
BEGIN
NewList := TStringList.Create;
TRY
// StringList sortieren und keine doppelten Strings hinzufügen
NewList.Sorted := True;
NewListt.Duplicates := dupIgnore;
NewList.CaseSensitive := False;
// Deine "Endlosschleife"
FOR j := 0 TO 10 DO
BEGIN
Memo1.Clear;
Memo1.Lines.add(ReadString('C:\LB.txt'));
END;
beep;
FINALLY
NewList.Free;
END;
END;
Das ist nur ein Ansatz, Du kannst "newlist" auch als Parameter mitgeben,
wenn Deine Funktion keine Unter-Funktion sein soll.
Oder Du kannst "newlist" global deklarieren...
Auf alle Fälle sollte deine Funktion immer mit der Stringliste
arbeiten die vorher einmal erzeugt wurde.