Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zahlen addieren (https://www.delphipraxis.net/73779-zahlen-addieren.html)

zebrafalke 23. Jul 2006 23:43


Zahlen addieren
 
Hallo,
ich habe eine Textdatei mit vielen zahlen untereinander und möchte mithilfe ines Programms diese zahlen addieren, wie könnte man das machen?


Gruss
zebrafalke

jmd anders 23. Jul 2006 23:50

Re: Zahlen addieren
 
Also als erstes müsstest du natürlich die Textdatei öffnen
dazu suchst du am besten bei http://www.delphibasics.co.uk/
da ist dann auch ein beispiel zu finden.

dann ist zu klären, ob nur zahlen in der textdatei enthalten sind oder auch buchstaben oder vielleicht auch zahlen die du gar nicht addieren willst.
falls ja dann wird die sache ein wenig komplizierter.

aber falls nur deine zahlen enthalten sind, dann kannst du immer mit readln eine zahl auslesen und dann mit StrToInt in einen integer wert umwandeln

aber kläre erstmal wie die textdatei aufgebaut ist, dann sieht man ja wieviel aufwand dieses programm erfordert

mr.winkle 23. Jul 2006 23:53

Re: Zahlen addieren
 
Hallo Zebrafalke
Die folgenden Zeilen hab ich nicht ausprobiert,
aber vom Prinzip her sollte man es so machen können:

(vorrausgesetzt ist ein Dokument das die Zahlen - ohne andere Zeichen - untereinander reiht)

Delphi-Quellcode:
var s:tstringlist;
    add:integer;

s:=tstringlist.create;
add:=0;
s.loadfromfile('datei.txt');
for i:=0 to s.lines.count-1 do inc(add,strtoint(s[i]));

showmessage('Summe: '+inttostr(add));

Michael Habbe 23. Jul 2006 23:58

Re: Zahlen addieren
 
Mal ein (Simpel-)Beispiel:
Delphi-Quellcode:
procedure blablupp;
var
  f: TextFile;
  s: String;
  x: Double;
begin
  x := 0;
  AssignFile(f, 'meineDatei.xyz');
  Reset(f);
  while not Eof(f) do
  begin
    ReadLn(f, s);
    try
      x := x + StrToFloat(s);
    except
    end;
  end;
  ShowMessage(FloatToStr(x));
end;

NicNacMan 23. Jul 2006 23:59

Re: Zahlen addieren
 
Was habt ihr alle gegen StrToIntDef() ? :-D

jmd anders 24. Jul 2006 00:11

Re: Zahlen addieren
 
Zitat:

Zitat von NicNacMan
Was habt ihr alle gegen StrToIntDef() ? :-D

ehm?
Was hat das mit dem problem zu tun?
was will man mit default werten, besser ist doch wenn man bei einem Konvertierungsproblem, eine exception erhält, als falsche werte

NicNacMan 24. Jul 2006 00:25

Re: Zahlen addieren
 
wieso, mit inc(x, StrToIntDef(line, 0)); kann man ohne probleme alles überspringen, mit dem man nicht rechnen kann.

zebrafalke 24. Jul 2006 16:54

Re: Zahlen addieren
 
Ich habe jetzt Michael Habbes Lösung genommen und es funktioniert wunderbar, danke! :-D


Was macht AssignFile?


Gruss

zebrafalke

Klaus01 24. Jul 2006 17:00

Re: Zahlen addieren
 
aus der Hilfe:

[quote]procedure AssignFile(var F; FileName: string);

Description

Call AssignFile to initialize a file variable. F is a file variable of any file type. FileName is a string-type expression or an expression of type PChar if extended syntax is enabled.

After calling AssignFile, F is associated with the external file until F is closed. All further operations on the file variable F operate on the external file named by FileName.

When the FileName parameter is empty, AssignFile associates F with the standard input or standard output file. If assigned an empty name, after a call to Reset (F), F refers to the standard input file, and after a call to Rewrite (F), F refers to the standard output file.

Do not use AssignFile on a file variable that is already open.

Note: To avoid scope conflicts, AssignFile replaces the Assign procedure that was available in previous versions of Delphi. However, for backward compatibility Assign is still available.[/quote]


Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz