So, Duffy war schneller, aber wegschmeißen wollt ich es nicht.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR i, i2, i3 : integer;
a, b, c : string;
ende : boolean;
begin
//Dient nur als Beispiel - änder Lines.Add um in LoadFromFile
Memo1.Lines.Add('12.12.2004 09:34:59 XXX nimmt sich 500000 € Aus den Schliessfach');
Memo1.Lines.Add('12.12.2004 08:12:45 XXX Legt 565656 € ins Schliessfach');
Memo1.Lines.Add('12.12.2004 07:28:38 Horst beseitigt das Schliessfach');
for i := 0 to Memo1.Lines.Count do
begin
a := '';
i2 := 20; //startet hinter dem datum
b := Memo1.Lines[i];
ende := False;
while (i2 <= Length(b)) do
begin
i2 := i2 + 1;
IF ((b[i2] = ' ') = false) AND (ende = False) THEN
begin
a := a + b[i2];
end;
IF (b[i2] = ' ') THEN ende := True; //Wenn b[i2] kein Buchstabe mehr ist bedeutet das, dass der name zuende ist.
end;
ende := False;
IF ((a = '') = false) THEN a := a + ' = '; //Falls nichts gefunden wurde auch nicht dazu tun
i3 := 20; //Startet wieder hinter dem Datum
while i3 < Length(b) do
begin
IF (b[i3] = '1') //Wenn b[i3] eine Zahl ist...
OR (b[i3] = '2')
OR (b[i3] = '3')
OR (b[i3] = '4')
OR (b[i3] = '5')
OR (b[i3] = '6')
OR (b[i3] = '7')
OR (b[i3] = '8')
OR (b[i3] = '9')
OR (b[i3] = '0') THEN
begin
a := a + b[i3];
end;
IF (b[i2] = ' ') THEN ende := True; //Wenn leerzeichen dann wieder beenden
i3 := i3 + 1;
end;
IF ((a = '') = false) THEN a := a + ' €';
Memo2.Lines.Add(a);
end;
end;
end.