Zitat von
Sharky:
...Wenn TStringList von Delphi6 schon mit DelmitedText arbeitet sollte das ganze mit einigen Zeile Code zu lösen sein.
Ich habe das jetzt mal so gemacht:
Delphi-Quellcode:
function AddiereZahlen (slText : TStringList) : Cardinal;
var
slZeile : TStringList;
summe : Cardinal;
ndx1 : Integer;
ndx2 : Integer;
wert : Integer;
code : Integer;
begin
slZeile := TStringList.Create;
summe := 0;
try
slZeile.Delimiter := ' '; // Trennzeichen
for ndx1 := 0 to Pred (slText.Count) do // Alle Zeilen durchgehen
begin
slZeile.DelimitedText := slText.Strings[ndx1];
for ndx2 := 0 to Pred (slZeile.Count) do // Jedes "Wort" durchgehen
begin
Val (slZeile.Strings[ndx2],wert,code); // In Integer umwandeln
if (code = 0) then // Wenn Umwandlung gelungen
begin
summe := summe + wert; // Addieren
end;
end;
end;
finally
slZeile.Free;
end;
result := summe;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
sl : TStringList;
summe : Cardinal;
begin
if (OpenDialog1.Execute) then
begin
sl := TStringList.Create;
try
sl.LoadFromFile(OpenDialog1.FileName); // Textdatei laden
summe := AddiereZahlen(sl);
Label1.Caption := IntToStr (summe);
finally
sl.Free;
end;
end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"