Entwickler-Ecke

Dateizugriff - Auslesen von Zahlen aus einer Textdatei in Tabelle


Ottchen - Di 23.11.04 22:47
Titel: Auslesen von Zahlen aus einer Textdatei in Tabelle
Hallo Liste,

im folgenden Programm werden Zahlen (Berechnungen Zinsen und Kapital) in eine Tabelle geschrieben und bei Klick im Menü in eine Textdatei abgespeichert.

Die Frage ist: Wie kann ich die Textdatei wieder öffnen und die Werte/Zahlen zurück in die Tabelle schreiben (siehe Fragezeichen in unten stehender Prozedur)?

Vielen Dank!

Ottchen



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
procedure TForm1.Rechne1Click(Sender: TObject);
var Anfang, Ende, Zinsen, Zinssatz: real;
    i: integer;

begin
  Anfang:=StrToFloat(Anlage_Edit.Text);
  Zinssatz:=StrToFloat(Zinssatz_Edit.Text);
  Laufzeit:=ScrollBar1.Position;
  StringGrid1.RowCount:=Laufzeit+1//Anpassen der Zeilen in Abh. der Laufzeit
   for i:=1 to Laufzeit do          //da ja die Kopfzeile der Tabelle dazu kommt
     with StringGrid1 do
       begin
         Cells[0,i]:=IntToStr(i);
         Cells[1,i]:=FloatToStrF(Anfang,ffFixed,10,2);
         Zinsen:=Anfang*Zinssatz/100;
         Cells[2,i]:=FloatToStrF(Zinsen,ffFixed,10,2);
         Ende:=Anfang+Zinsen;
         Cells[3,i]:=FloatToStrF(Ende,ffFixed,10,2);
         Anfang:=Ende;
       end;
end;

procedure TForm1.Speichern1Click(Sender: TObject);
var TextDatei:TextFile;  i:integer;
begin
  AssignFile(TextDatei,'Paul.txt');
  Rewrite(TextDatei); //Datei erstellen
  Writeln(TextDatei,'Jahr   Anfang    Zinsen     Ende');
  for i:=1 to Laufzeit do //Variable Laufzeit ist global,
    with StringGrid1 do  // da sie hier zum Speichern benötigt wird
      begin              // (in Abhängigkeit der Laufzeit)
        Write(TextDatei,Cells[0,i]+'  |  ');
        Write(TextDatei,Cells[1,i]+'  |  ');
        Write(TextDatei,Cells[2,i]+'  |  ');
        WriteLn(TextDatei,Cells[3,i]);
      end;
  CloseFile(TextDatei);
end;

procedure TForm1.ffnen1Click(Sender: TObject);
var TextDatei:TextFile;
begin
  AssignFile(TextDatei,'Paul.txt');
  Reset(TextDatei);
  repeat

  //??????????????????????????
  //??????????????????????????  


  until EOF(TextDatei);
  CloseFile(TextDatei);  
end;


BenBE - Mi 24.11.04 00:20

Mit ReadLn die Zeile lesen und dann mit Copy und Pos an hand der senkrechten Striche zerlegen. Weiterhin kannst du die überflüssigen Leerzeichen mit Trim abschneiden. Danach einfach die Zahlen mit StrToFloat in Gleitkommazahlen umwandeln und auf das Ergebnis freuen.