procedure TForm1.Button1Click(Sender: TObject);
VAR i, Geld, Geld2: integer;
namealt, nameneu : string;
begin
Memo1.Lines.LoadFromFile('Geld.txt'); //In der Datei Geld.txt sind alle Daten
namealt := Copy(Memo1.Lines[0], 19, Pos(' legt', Memo1.Lines[0])-19); //der erste Name wird erstellt
nameneu := '';
for i := 0 to Memo1.Lines.Count do //Alle Einträge durchgehen
begin
IF (Pos('legt', Memo1.Lines[i]) > 0) THEN nameneu := Copy(Memo1.Lines[i], 19, Pos(' legt', Memo1.Lines[i])-19);
IF (Pos('nimmt sich', Memo1.Lines[i]) > 0) THEN nameneu := Copy(Memo1.Lines[i], 19, Pos(' nimmt sich', Memo1.Lines[i])-19);
IF (namealt = nameneu) THEN
begin
IF (Pos('legt', Memo1.Lines[i]) > 0) THEN
begin
Geld2 := StrToInt(Copy(Memo1.Lines[i], 19 + length(Nameneu) + length(' legt '), Pos(' €', Memo1.Lines[i]) - (19 + length(Namealt) + length(' legt '))));
Geld := Geld + Geld2; //Den "Legt" Betrag addieren
end;
IF (Pos('nimmt sich', Memo1.Lines[i]) > 0) THEN
begin
Geld2 := StrToInt(Copy(Memo1.Lines[i], 19 + length(Nameneu) + length(' nimmt sich '), Pos(' €', Memo1.Lines[i]) - (19 + length(Namealt) + length(' nimmt sich '))));
Geld := Geld - Geld2; //-
end;
end;
IF ((namealt = nameneu) = false) THEN //Wenn die namen nicht identisch sind (neuer Benutzer)...
begin
ListBox1.Items.Add(namealt + ' = ' + IntToStr(Geld)); //...dann adde erstmal die alten Daten in die 2te Memo
Geld := 0; //Geld auf 0, eigentlich unnötig
namealt := nameneu; //Hier werden die Namen gleichgesetzt, sonst wäre diese Bedinung immer True
IF (Pos('legt', Memo1.Lines[i]) > 0) THEN
begin
Geld2 := StrToInt(Copy(Memo1.Lines[i], 19 + length(Nameneu) + length(' legt '), Pos(' €', Memo1.Lines[i]) - (19 + length(Nameneu) + length(' legt '))));
Geld := Geld2;
end;
IF (Pos('nimmt sich', Memo1.Lines[i]) > 0) THEN
begin
Geld2 := StrToInt(Copy(Memo1.Lines[i], 19 + length(Nameneu) + length(' nimmt sich '), Pos(' €', Memo1.Lines[i]) - (19 + length(Nameneu) + length(' nimmt sich '))));
Geld := 0 - Geld2 ;
end;
IF (i = Memo1.Lines.Count-1) THEN ListBox1.Items.Add(namealt + ' = ' + IntToStr(Geld));
end;
IF (i = Memo1.Lines.Count-1) THEN ListBox1.Items.Add(namealt + ' = ' + IntToStr(Geld));
LIstBox1.Sorted := True;
end;
namealt := '';
nameneu := '';
Geld := 0;
MEmo1.Lines.Clear;
namealt := Copy(ListBox1.Items[0], 1, Pos(' = ', ListBox1.Items[0])); //der erste Name wird erstellt
for i := 0 to ListBox1.Items.Count-1 do
begin
nameneu := Copy(ListBox1.Items[i], 1, Pos(' = ', ListBox1.Items[i]));
IF (nameneu = namealt) THEN
begin
Geld2 := StrToInt(Copy(ListBox1.Items[i], length(namealt)+3, length(ListBox1.Items[i])-length(name)+3));
Geld := Geld + GEld2;
end;
IF (nameneu = namealt) = false THEN
begin
memo1.Lines.Add(Namealt + ' = ' + IntToStr(Geld));
namealt := nameneu;
Geld2 := StrToInt(Copy(ListBox1.Items[i], length(namealt)+3, length(ListBox1.Items[i])-length(name)+3));
Geld := 0;
Geld := Geld + GEld2;
end;
end;
end;