Autor Beitrag
Ottchen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43



BeitragVerfasst: Di 23.11.04 22:47 
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


ausblenden volle Höhe 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;

_________________
See you.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.