Hallo Fredbert,
herzlich willkommen in der Delphi-PRAXiS.
Lösungen können tendenziell nur so gut sein, wie die Problembeschreibung. Ohne Umschweife würde ich deine im Eröffnungsbeitrag gestellte Frage so beantworten:
Delphi-Quellcode:
uses
Classes;
var
slLines, slValues: TStrings;
fileName: string;
i, iLines: integer;
iSum: Int64;
// Kleinere Dateien können komplett im Hauptspeicher verarbeitet werden
begin
// Container für die Textzeilen mit den drei Werten
slLines := TStringList.Create;
// Container für die Zerlegung einer Zeile in drei Werte
slValues := TStringList.Create;
slValues.Delimiter := ' ';
// Dateiname ist erster Aufrufparameter
fileName := ParamStr(1);
// Datei Laden
slLines.LoadFromFile(fileName);
for iLines := 0 to Pred(slLines.Count) do
begin
// Zeile an Leerstellen zerlegen
slValues.DelimitedText := slLines[iLines];
iSum := 0;
// Zahlenwerte konvertieren und summieren
for i := 0 to Pred(slValues.Count) do
iSum := iSum + StrToInt(slValues[i]);
// ...
end;
end;
Wenn die Datei für diese Vorgehensweise zu groß ist, dann musst du sie zeilenweise verarbeiten:
Delphi-Quellcode:
var
f: TextFile;
i, iValue: integer;
iSum: Int64;
begin
AssignFile(f, fileName);
Reset(f);
while not Eof(f) do
begin
iSum := 0;
for i := 1 to 3 do
begin
Read(f, iValue);
iSum := iSum + iValue;
end;
ReadLn(f);
end;
CloseFile(f);
end;
Vielleicht gibt dir das ein paar Denkanstöße, wie du dein Problem lösen kannst. Code zum Überprüfen von möglichen Fehlern musst du selbst dazu schreiben.
Grüße vom marabu