so - hab natürlich an dem Code weiter gebastelt.
Das Ergebnis ist im Anhang.
Dank Dir, wp_xyz, und Deinem Beispiel habe ich echt einiges (wieder) gelernt!
Vielen Dank!!
Für Interessierte:
Zusammengefasst ist in dem Code beispielhaft folgende Funktionalität enthalten:
- Einlesen einer CSV Datei mit TCSVParser
- Ausgabe in einer Textdatei
- Protokollierung/Log
- Stringmanipulations- und Formatierungs- Bespiele
- Ein kleines Regelwerk für Bedingungen auf Feldinhalte
- Summierung von Spalten in einem Array (<--noch Fehlerhaft)
Besonders der letzte Punkt macht mir echt Probleme. Liegt wohl daran das ich schon sehr lange keine Praxis mehr hatte:
Ich bekomme einen "Gruppenwechsel" einfach nicht hin:
Inhalt im Array
Code: Alles auswählen
IDNr .... Betrag
450 88.788,56
450 2.000.000,18
650 200.000,00
722 1.900.555,45
733 128.000,65
811 300.000,00
811 45.000,55
922 200.000,00
Ergebnis soll so aussehen:
Code: Alles auswählen
IDNr Summe
450 2.088.788,74
650 200.000,00
722 1.900.555,45
733 128.000,65
811 345.000,55
922 200.000,00
Code: Alles auswählen
//Summe Betrag pro IDNr berechnen
procedure TForm1.SummeBetrag(arData : TDatenArray);
var
i, j : integer; //Zähler
sum : Currency;
Begin
sum:= 0;
for i := 0 to High(arData) do
begin
if (arData[i].IDNr <> arData[i+1].IDNr) then
begin
memLog.Lines.Add('IDNr ' + IntToStr(arData[i].IDNr) + ' Summe Betrag: ' + FloatToStr(sum)); //Ausgabe
sum:=0; //Summe zurücksetzen wenn Wechsel
end
else
begin
sum := sum + arData[i].Betrag;
end;
end;
end;
Mein letzter Stand...
Habe schon einiges probiert aber ich habe wohl einen grundsätzlichen Denkfehler...
Annahme ist das die Datensätze sortiert vorliegen.
wp_xyz kannst Du mir vielleicht zeigen wo mein Fehler liegt?