| Autor |
Beitrag |
toebi
Hält's aus hier
Beiträge: 6
|
Verfasst: Do 12.10.06 12:52
Hallo. ich bin dabei ein kleines programm zu schreiben.
Stringgrid soll in vorgegebens verzeichnis mit endung *.dat gespeichert werden. der name der datei ergibt sich aus einem editfeld. es soll hierbei kein speicherndialog angewendet werden. einfach nur speichern klicken und fertig.
das hab ich soweit gelöst.
PROBLEM: Laden will nicht klappen.
hier soll ein opendialog kommen und ich kann die *.dat auswählen. die werte aus der datei sollen dann im stringgrid erscheinen.
bitte um hilfe.
danke im vorraus toebi.
hier mal der quelltext:
---speichern
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button6Click(Sender: TObject);
var F: TStringList; i: Integer; begin F := TStringList.Create; try for i := 1 to (StringGrid1.RowCount - 2) do F.Add(StringGrid1.Rows[i].CommaText);
F.SaveToFile('c:\'+Eauftrag.Text+'.dat'); finally F.Free; end; end; |
-------Laden ( ist nicht richtig)
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button2Click(Sender: TObject); var F: TStringList; i: Integer; begin F := TStringList.Create; try F.LoadFromFile('c:\'+Eauftrag.Text+'.dat'); StringGrid1.RowCount := StrToInt(F[0]); StringGrid1.ColCount := StrToInt(F[1]); for i := 0 to (StringGrid1.RowCount - 1) do StringGrid1.Rows[i].CommaText := F[i + 2]; finally F.Free; end; end; |
Zuletzt bearbeitet von toebi am Do 12.10.06 13:12, insgesamt 2-mal bearbeitet
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 12.10.06 12:58
bitte formatiere deinen Quelltext (oben die Leiste "Bereiche" -> "Delphi"
zu deinem Problem : was funktioniert schon und was nicht ?
|
|
toebi 
Hält's aus hier
Beiträge: 6
|
Verfasst: Do 12.10.06 13:16
ihr müsstet mir mal helfen bei der ladenprozedure.
wie genau ich die *.dat lade und wie ich aus der datei die einzelnen (3) datensätze in die jeweiligen stringgridcells bringe.
Also es werden am anfang 3 dinge in die dat gespeichert.
ISBN, Anzahl, und ein wort. diese liegen in der dat dann so vor 1234567890,1,wort.
so wie mach ich das jetzt genau?
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 12.10.06 13:27
ok, also du hast die Daten in einer stringlist.
Diese musst du jetzt für jede Zeile durchgehen.
Die Werte schreibst du dann in dein Grid.
Hier ein sehr gutes Tutorial zum Thema Stringgrid : Delphi – TUTORIAL StringGrid
Da ist auch ein Beispiel für dein Problem dabei, dass du nur noch anpassen brauchst.
|
|
toebi 
Hält's aus hier
Beiträge: 6
|
Verfasst: Do 12.10.06 13:37
schau dir mal bitte meine speichernprozedur an.
genau zu diesem speichern brauche ich eine ladenprozedure.
die ganzen tuts und hilfen hatte ich mir schonmal angeschaut.
könnt ihr mir denn nicht die paar zeilen hinschreiben die dafür nötig sind?
wär sehr nett, da ich selber daran fast verzweifel
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Do 12.10.06 13:42
wennst kurz zeit hast schreib ich dir schnell n demoprogramm...natürlich mit quelltext =)
LG
Stefan
[edit]
wird doch nix..chef kam grad angetanzt =(
[/edit...
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Zuletzt bearbeitet von ZeitGeist87 am Do 12.10.06 13:49, insgesamt 1-mal bearbeitet
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 12.10.06 13:43
schau in den Link da steht genau das drin was du brauchst auf Seite 10 !!!
|
|
toebi 
Hält's aus hier
Beiträge: 6
|
Verfasst: Do 12.10.06 14:29
ich werd daraus nicht schlau. ich brauche doch wie gesagt nur die ladenprozedur.
und bitte keine hinweise auf irgendwelche andern quellcodes. 
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 12.10.06 14:51
Ok, da du anscheinend Schwierigkeiten beim Lesen hast oder zu faul bist habe ich dir den Code aus dem Link nochmal abgeschrieben (markierter Bereich) :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm1.Button2Click(Sender: TObject); var F: TStringList; x,y,z: Integer; begin F := TStringList.Create; try F.LoadFromFile('c:\'+Eauftrag.Text+'.dat'); StringGrid1.colcount:=strtoint(F.strings[0]); StringGrid1.rowcount:=strtoint(F.strings[1]); z:=2; for x:=0 to StringGrid1.ColCount-1 do for y:=0 to StringGrid1.RowCount-1 do begin StringGrid1.cells[x,y]:=F.strings[z]; inc(z); end; finally F.Free; end; end; |
[EDIT] :
Dabei wird davon ausgegangen, dass du die anzahl der Spalten in der ersten Zeile und die Anzahl der Zeilen in der 2. Zeile deiner Datei gespeichert hast (das musst du dann in die "Speichern"-Prozedur mit reinschreiben. Ausserdem sind alle Daten untereinander gespeichert und nicht wie bei dir 3 in einer Zeile. Aber dass kannst du ja auch in deiner "Speichern"-Prozedur verändern. Deine "Speichern-Prozedur sollte dann so aussehen :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Button6Click(Sender: TObject);
var F: TStringList; x,y: Integer; begin F:=TStringlist.create; F.add(inttostr(StringGrid1.colcount)); F.add(inttostr(StringGrid1.rowcount)); for x:=0 to StringGrid1.ColCount-1 do for y:=0 to StringGrid1.RowCount-1 do F.add(StringGrid1.cells[x,y]); F.savetofile('c:\'+Eauftrag.Text+'.dat'); F.free; end; |
Damit dürfte dann alles funktionieren.
|
|
toebi 
Hält's aus hier
Beiträge: 6
|
Verfasst: Fr 13.10.06 08:21
ich danke dir. bin halt im programmieren in delphi eher neu.
so. das laden muss jetzt noch in form eines opendialog stattfinden.
ich versuch mich mal daran. hoffe es klappt.
mit großem dank, ein toebi
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 13.10.06 08:26
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:
| procedure TForm1.Button2Click(Sender: TObject); var F: TStringList; x,y,z: Integer; begin if opendialog1.execute then begin F := TStringList.Create; try F.LoadFromFile(opendialog1.filename); StringGrid1.colcount:=strtoint(F.strings[0]); StringGrid1.rowcount:=strtoint(F.strings[1]); z:=2; for x:=0 to StringGrid1.ColCount-1 do for y:=0 to StringGrid1.RowCount-1 do begin StringGrid1.cells[x,y]:=F.strings[z]; inc(z); end; finally F.Free; end; end; end |
LG
Stefan
[edit]
delphi-tags vergessen =)
[/edit]
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Zuletzt bearbeitet von ZeitGeist87 am Fr 13.10.06 08:56, insgesamt 1-mal bearbeitet
|
|
toebi 
Hält's aus hier
Beiträge: 6
|
Verfasst: Fr 13.10.06 08:31
ui danke.
werd mich mal reinlesen. sieht gut aus. danke euch allen.
kann dann endlich mein projekt weiter machen.
|
|