Delphi - StringGrid speichern?
Hi Leute,
hat einer ne Ahnung, wie ich ne StringGrid speichern kann. Möglichst als ganzes in ne Datei, sodass es dann auch wieder aufrufbar ist, also nicht jede Zelle in ne extra datei. Und wenn, wo wir grad dabei sind, dann auch noch jemand weiß, wie ich das wieder geladen bekomm, wärs noch genialer
Danke im voraus =)
hat einer ne Ahnung, wie ich ne StringGrid speichern kann. Möglichst als ganzes in ne Datei, sodass es dann auch wieder aufrufbar ist, also nicht jede Zelle in ne extra datei. Und wenn, wo wir grad dabei sind, dann auch noch jemand weiß, wie ich das wieder geladen bekomm, wärs noch genialer
Danke im voraus =)
Alos ich habe lange Zeit Delfi programmiert.
Les doch einfach aus den StringGrid Informationen die Größe aus.
Also wie viele Felder das Ding hat (--> kannst aber auch hart codieren)
Dann gehst du Zeilenweise mit 2 Schleifen durch das Grid und liest jeden
Wert aus und speicherst ihn in eine Datei. Also für jeden Wert eine Zeile.
Oder du machst immer einen Separator dazwischen, dann kannst du es auch in eine machen.
Die Infos wie groß das Grid ist würde ich am Anfang platzieren, dann kannst du nämlich beim
Auslesen das Grid dynamisch erzeugen.
Wenn du noch Fragen hast, einfach melden...
Gruß
Les doch einfach aus den StringGrid Informationen die Größe aus.
Also wie viele Felder das Ding hat (--> kannst aber auch hart codieren)
Dann gehst du Zeilenweise mit 2 Schleifen durch das Grid und liest jeden
Wert aus und speicherst ihn in eine Datei. Also für jeden Wert eine Zeile.
Oder du machst immer einen Separator dazwischen, dann kannst du es auch in eine machen.
Die Infos wie groß das Grid ist würde ich am Anfang platzieren, dann kannst du nämlich beim
Auslesen das Grid dynamisch erzeugen.
Wenn du noch Fragen hast, einfach melden...
Gruß
Mir fällt grad auf, dass ich noch was vergessen hab >.<
Ich wollte das StringGrid sozusagen in ne Exceltabelle reinspeichern.
Also dass ich die Tabelle aus dem Prog (in Form des StringGrids) in ne Tabelle die ich zB ausdrucken könnte reinbekomm (am bestne in Form von Excel).
Hab voll vergessen das zu erwähnen... sry
Ich wollte das StringGrid sozusagen in ne Exceltabelle reinspeichern.
Also dass ich die Tabelle aus dem Prog (in Form des StringGrids) in ne Tabelle die ich zB ausdrucken könnte reinbekomm (am bestne in Form von Excel).
Hab voll vergessen das zu erwähnen... sry
eignet sich das CSV-Format für dein vorhaben?
Das kann man in Excel laden/importieren und das oben aufgezeigte Beispiel müsste nur geringfügig abgeändert werden.
allerdings muss ein Zeichen zum trennen der Spalten reserviert werden z.B das Semikolon
Gruß
Ego
Das kann man in Excel laden/importieren und das oben aufgezeigte Beispiel müsste nur geringfügig abgeändert werden.
allerdings muss ein Zeichen zum trennen der Spalten reserviert werden z.B das Semikolon
Gruß
Ego
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ego« (27. Februar 2010, 23:14)
Hm, eine sehr stabile methode wäre das Blockwrite und Blockread mit records.
Willst du das ordentlich machen müsstest du dann ein meta-datenmodel schaffen.
z.B.: type einezelle=record x,y:word; text: String[248]; end;
jetzt kannst du mit
var t:einezelle;
...
meinezelle.x:=maxX;
meinezelle.y:=maxY;
blockwrite(fileout, aktuelleZelle,1);
for x:= 0 to maxX do
for y:= 0 to maxY do begin
meinezelle.x:=x;
meinezelle.y:=y;
meinezelle.text:=tstringgrid.cells[x,y];
Blockwrite(fileout, aktuelleZelle,1);
end;
schreiben.
und lesen mit:
Blockread(filein, maxZelle,1);
for x:= 0 to maxZelle.x do
for y:= 0 to maxZelle.y do begin
Blockread(filein, aktuelleZelle,1);
tstringgrid.cells[x,y]:=meinezelle.text;
end;
Willst du das ordentlich machen müsstest du dann ein meta-datenmodel schaffen.
z.B.: type einezelle=record x,y:word; text: String[248]; end;
jetzt kannst du mit
var t:einezelle;
...
meinezelle.x:=maxX;
meinezelle.y:=maxY;
blockwrite(fileout, aktuelleZelle,1);
for x:= 0 to maxX do
for y:= 0 to maxY do begin
meinezelle.x:=x;
meinezelle.y:=y;
meinezelle.text:=tstringgrid.cells[x,y];
Blockwrite(fileout, aktuelleZelle,1);
end;
schreiben.
und lesen mit:
Blockread(filein, maxZelle,1);
for x:= 0 to maxZelle.x do
for y:= 0 to maxZelle.y do begin
Blockread(filein, aktuelleZelle,1);
tstringgrid.cells[x,y]:=meinezelle.text;
end;
eignet sich das CSV-Format für dein vorhaben?
Das kann man in Excel laden/importieren und das oben aufgezeigte Beispiel müsste nur geringfügig abgeändert werden.
allerdings muss ein Zeichen zum trennen der Spalten reserviert werden z.B das Semikolon
Gruß
Ego
Ich glaub das würde sich ganz gut eignen. Müsste ich mal ausprobieren. Danke schon mal, wenn ich dazu gekommen bin, es zu probiern, melde ich mich nochmal =) (hab zZ bloß geringfügig stress >.>)
Ähnliche Themen
-
Sonstige Programmiersprachen »-
Delphi Problem
(18. Juli 2007, 14:28)
-
Sonstige Programmiersprachen »-
Delphi Probleme - bitte helfen !
(4. November 2004, 19:41)
-
Sonstige Programmiersprachen »-
Hilfe! Speicherprobleme mit Delphi 7
(27. Februar 2004, 19:46)
-
Sonstige Programmiersprachen »-
Delphi 7 Tutorials
(31. Dezember 2003, 18:55)
-
Archiv: Software »-
Delphi 7
(19. März 2003, 20:28)


