Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StringGrid speichern/laden (https://www.delphipraxis.net/33450-stringgrid-speichern-laden.html)

glkgereon 7. Nov 2004 12:13


StringGrid speichern/laden
 
moin

ich speichere den inhalt eines stringgrids mit dieser procedure:

Delphi-Quellcode:
procedure TForm_search.Button3Click(Sender: TObject);
var i:integer;
    t:TStringList;
begin
  t:=TStringList.Create;
  t.Add(inttostr(StringGrid2.RowCount-1));
  t.Add(inttostr(StringGrid2.ColCount-1));
  for i:= 0 to StringGrid2.ColCount-1 do
    t.AddStrings(StringGrid2.Cols[i]);
  t.SaveToFile('Suchergebnisse ['+StringGrid1.Cells[1,1]+'] - '+StringGrid1.Cells[0,1]+'.txt');
  t.Free;
end;
nun will ich das wieder auslesen, ich hatte mir das so überlegt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var dialog:TOpenDialog;
    t:TStringList;
    cols,rows, i, j:integer;
begin
  dialog:=TOpenDialog.Create(Form1);
  t:=TStringList.Create;
  if dialog.Execute then
    begin
    t.LoadFromFile(dialog.FileName);
    rows:=strtoint(t[0]);
    t.Delete(0);
    cols:=strtoint(t[0]);
    t.Delete(0);
    StringGrid1.ColCount:=cols;
    StringGrid1.RowCount:=rows;
    for i:=0 to rows do
      for j:=0 to cols do
        StringGrid1.Cells[j,i]:=t[j*i+i];
    end;
  dialog.Free;
  t.Free;
aber irgendwas stimmt da noch nicht..was?

Ultimator 7. Nov 2004 12:22

Re: StringGrid speichern/laden
 
Wenn du uns freundlicherweise sagen würdest, was denn nicht klappt? :zwinker:
Fehlermeldung, AV, passiert was oder gar nix etc. pp.

glkgereon 7. Nov 2004 12:28

Re: StringGrid speichern/laden
 
also de sachen werden nocht korrekt wieder reingeschrieben sondern irgendwie so diagonal...beispiel:

vorher:
1 a z
2 b y
3 c x
4 d w
5 e v
6 f u
7 g t
8 h s
9 i r

nachher in etwa

1 2 3
4 5 a
6 7 b
8 c d
9 e z
f g y
h x w
i v u
t s r


also die erste spalte belegt den platz:

XXX
XX-
XX-
X--
X--
---
---
---
---
die zweite den:

---
--X
--X
-XX
-XX
XX-
X--
X--
---

und die dritte den:

---
---
---
---
---
--X
-XX
-XX
XXX

nochma zusammen:

111
112
112
122
122
223
233
233
333


ich hoffe es ist verständlich


nur ist meine tabelle um ein vielfaches größer...

Chris1986 7. Nov 2004 12:32

Re: StringGrid speichern/laden
 
Hi glkgereon,
ich denke mal das der Fehler mit Col und row-count zusammen hängt. Ich hab dem Code mal Kommentare hinzugefügt:
[quote="glkgereon"]moin
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var dialog:TOpenDialog;
    t:TStringList;
    cols,rows, i, j:integer;
begin
  dialog:=TOpenDialog.Create(Form1);
  t:=TStringList.Create;
  if dialog.Execute then
    begin
    t.LoadFromFile(dialog.FileName);
    rows:=strtoint(t[0]);
    t.Delete(0);
    cols:=strtoint(t[0]);
    t.Delete(0);
    StringGrid1.ColCount:=cols; //probier mal: StringGrid1.ColCount:=cols+1;
    StringGrid1.RowCount:=rows; //probier mal: StringGrid1.ColCount:=rows+1;
    for i:=0 to rows do
      for j:=0 to cols do
        StringGrid1.Cells[j,i]:=t[j*i+i];
    end;
  dialog.Free;
  t.Free;
quote]

Bin gespannt ob's klappt 8)

MfG
Christian

glkgereon 7. Nov 2004 13:03

Re: StringGrid speichern/laden
 
nein, tut es leider nicht

ich raff das echt nicht

Keldorn 7. Nov 2004 19:38

Re: StringGrid speichern/laden
 
warum nutzt du nicht die Forensuche? Hier im Forum suchenstringgrid speichern liefert sicher einige Beiträge, die auf das hier zeigen.

mfg Frank

glkgereon 7. Nov 2004 22:04

Re: StringGrid speichern/laden
 
hmm...stimmt

mit nahezu 950 posts sollte mans gelernt haben :gruebel:

aber das mit den anderen seitemn habbich noch nicht so drin...

thx


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.

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