kuschelfreddy - Mi 03.09.08 22:16
Titel: StringGrid Inhalt speichern?
Hey, hoffe, hier kann mir jemand helfen:
Wir sollen für die Schule ein Programm schreiben, dass Daten, die in ein StringGrid eingegeben wurden, als Textdatei abspeichert und mit dem man die Textdatei auch öffnen kann, sodass die Daten dann im StringGrid auftauchen (hoffe, das war verständlich).
Na ja, aus purer Verzweiflung hab ich dann im I-net einfach mal ein bisschen gestöbert und diesen Quelltext gefunden:
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:
| procedure TForm1.Button7Click(Sender: TObject); var f: textfile; i, k:integer; begin if SaveDialog1.Execute then begin Assignfile(f, saveDialog1.filename); rewrite(f); with StringGrid1 do begin writeln(f, StringGrid1.colcount); writeln(f, StringGrid1.rowcount); for i:=0 to stringGrid1.colcount-1 do for k:=0 to StringGrid1.rowcount-1 do writeln(f, StringGrid1.Cells[i, k]); end; closefile(f); end; end;
procedure TForm1.Button8Click(Sender: TObject); var f: textfile; i, k, n:integer; Wort:string; begin if OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.filename); Reset(f); with StringGrid1 do begin Readln(f, n); StringGrid1.colcount:=n; Readln(f, n); StringGrid1.Rowcount:=n; for i:=0 to stringGrid1.colcount-1 do for k:=0 to StringGrid1.rowcount-1 do begin readln(f, Wort); StringGrid1.Cells[i, k]:=Wort; end; end; Closefile(f); end; end; |
Das funktioniert auch ganz wunderbar und macht genau das, was es soll, nur verstanden, was da eigentlich passiert, habe ich nicht. Hoffe, das kann mir hier jemand erklären.
Danke schonmal.
Nathalie
Moderiert von
Gausi: Delphi-Tags hinzugefügt
Gausi - Mi 03.09.08 22:17
Hallo,
bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den
Richtlinien [
http://www.entwickler-ecke.de/richtlinien.html]:
1.2 Beiträge: |
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf

oder

klicken und den Titel ändern.
Danke Dir!
Yogu - Mi 03.09.08 22:48
Ich füg einfach mal ein paar Kommentare hinzu:
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: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72:
| procedure TForm1.Button7Click(Sender: TObject); var f: textfile; i, k:integer; begin if SaveDialog1.Execute then begin Assignfile(f, saveDialog1.filename);
rewrite(f); with StringGrid1 do begin writeln(f, StringGrid1.colcount); writeln(f, StringGrid1.rowcount);
for i:=0 to stringGrid1.colcount-1 do for k:=0 to StringGrid1.rowcount-1 do writeln(f, StringGrid1.Cells[i, k]); end;
closefile(f); end; end;
procedure TForm1.Button8Click(Sender: TObject); var f: textfile; i, k, n:integer; Wort:string; begin if OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.filename);
Reset(f); with StringGrid1 do begin Readln(f, n); StringGrid1.colcount:=n; Readln(f, n); StringGrid1.Rowcount:=n;
for i:=0 to stringGrid1.colcount-1 do for k:=0 to StringGrid1.rowcount-1 do begin readln(f, Wort); StringGrid1.Cells[i, k]:=Wort; end; end;
Closefile(f); end; end; |
Ich hoffe, das ist einigermaßen verständlich. Mit
AssignFile etc. kenne ich mich nicht so aus (ich verwende Streams), deshalb könnte miene Beschreibung dazu nicht ganz korrekt sein.