Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Inhalt vom StringGrid speichern
Aya - Di 13.02.07 18:40
marvin521993 hat folgendes geschrieben: |
was muss ich anstatt dem fragezeichen einsetzen |
Rows[i]
marvin521993 - Di 13.02.07 18:45
warum i ich hatte doch gar keine variable fest gelegt?
oder meintest du ich muss ne for schleife machen?
so dann etwa?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| If Savedialog1.Execute Then begin for i := 0 to 50 do begin Stringgrid1.Rows[i].SavetoFile(Savedialog1.Filename); end; end; |
Lg
Marvin
Aya - Di 13.02.07 19:08
Um nochmal auf die sache mit dem selber nachdenken zurückzukommen... ;)
Wenn du deinen kleinen Codeschnipsl da oben mal ausführst, wirst du merken das du in deiner Textdatei immer nur eine Zeile drinstehen hast... nach genauerer untersuchung des ganzen bemerkst du dann, dass das immer die letzte, bzw 50. Zeile ist.
Dann kommt der Teil mit dem nachdenken über die lösung des Problems, bzw zuerst des verstehens.
Die For-schleife speichert 50x eine Zeile in der Datei.. sie überschreibt sie dabei logischerweise jedesmal.
Was muß also getan werden? Alle Zeilen erstmal in eine Liste o.Ä. zusammenpacken -> TStringList
Und hier lass ich dich erstmal allein weiter überlegen, bzw -> F1 (Hilfe) oder Forensuche.
Aya
PS: Sorry, ich weiß klingt fies.. aber deine Fragen klingen für mich echt so als würdest du bevor du auch nur einmal die Suche oder die Hilfe bemühst sofort hier posten.. versuch mal selber auf lösungen zu kommen, und werd nich zu einem Copy&Paste "Programmierer"
marvin521993 - Di 13.02.07 19:18
gut ich habe jetz überlegt wirklich :)
ich bin zu folgendem entschluss gekommen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| If Savedialog1.Execute Then begin daten := TStringList.create; for i := 0 to 50 do begin daten.Add(StringGrid1.Cells[i,1]); daten.Add(StringGrid1.Cells[i,0]); end; daten.SaveToFile(SaveDialog1.FileName); end; daten.Free; end; |
aber der speichert nur die ersten 2 zeilen vom stringgrid
kannst du mir sagen warum?
Lg
Marvin
Ps: Hab wirklich überlegt
Aya - Di 13.02.07 19:42
marvin521993 hat folgendes geschrieben: |
kannst du mir sagen warum? |
Spontan würd ich sagen weil du aus irgendeinem grund Rows[] durch Cells[] ersetzt hast :?
Delete - Di 13.02.07 20:41
hallo marvin521993,
'n heisser Tip. den cursor auf das element platzieren und F1 drücken :-) . ist schneller und meist auch kompetenter.
Aya - Di 13.02.07 20:46
Grenzgaenger hat folgendes geschrieben: |
Ist schneller und meist auch kompetenter. |
Delete - Di 13.02.07 22:32
Aya hat folgendes geschrieben: |
Grenzgaenger hat folgendes geschrieben: | Ist schneller und meist auch kompetenter. |
 |
tja aya, ist halt nicht jeder so 'ne koryphäe wie du :-)
vor allem braucht die hilfe nur 0,1 sekunden um auskunft zu geben, etwas hier ins forum zu hacken, geht da bedeutend langsamer...
marvin521993 - Mi 14.02.07 17:07
kann mir nich einfach ejamdn sagen was hier dran falsch is??
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TFormvokverwalt.SpeedButton1Click(Sender: TObject); var i : Integer; begin If Savedialog1.Execute Then begin daten := TStringList.Create; for i := 0 to 50 do begin daten.Add(StringGrid1.Cells[i,0]); daten.Add(StringGrid1.Cells[i,1]); end; daten.SaveToFile(SaveDialog1.FileName); end; daten.Free;
end; |
ich möchte doch einfach nur wissen was hier dran falsch ist :(
aya das mit dem cols geht auch nich
Lg
Marvin
Chryzler - Mi 14.02.07 17:10
marvin521993 hat folgendes geschrieben: |
kann mir nich einfach ejamdn sagen was hier dran falsch is??
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TFormvokverwalt.SpeedButton1Click(Sender: TObject); var i : Integer; begin If Savedialog1.Execute Then begin daten := TStringList.Create; for i := 0 to 50 do begin daten.Add(StringGrid1.Cells[i,0]); daten.Add(StringGrid1.Cells[i,1]); end; daten.SaveToFile(SaveDialog1.FileName); end; daten.Free;
end; |
ich möchte doch einfach nur wissen was hier dran falsch ist :(
aya das mit dem cols geht auch nich
Lg
Marvin |
Und
StringGrid1.Cells[0, i] haste noch nicht ausprobiert?
Aya - Mi 14.02.07 17:39
marvin521993 hat folgendes geschrieben: |
aya das mit dem cols geht auch nich |
Vieleicht weil ich
Rows und nich
Cols geschrieben hab? :P
marvin521993 - Mi 14.02.07 17:50
ja mit rows aber auch nich ich brauche nur den fehler den ich da in der formel habe
und ich weiss ja auch nicht ob das richtig ist, was mir chryzler erzählt hat, da der compiler nich reagiert
[Fataler Fehler] Ausgabedatei 'C:\Dokumente und Einstellungen\Desktop\Delphi\Vokabelabfrager\Project1.exe' kann nicht erstellt werden
so ist der fehler
muss ich das programm nochmal ganz von neu machen?
Lg
Marvin
Aya - Mi 14.02.07 17:54
Das bedeutet einfach das die EXE Datei nicht erstellt werden kann... kann viele gründe haben:
- EXE Datei ist grad geöffnet = kann nicht überschrieben werden
- Keine schreibrechte im verzeichnis
- Verzeichnis existiert nicht
etc..
marvin521993 - Mi 14.02.07 18:00
ok es geht jetzt danke dir :)
aber leider geht das speichern immer noch nicht :( och mann das kann doch nicht so schwer sein
Lg
Marvin
Aya - Mi 14.02.07 18:04
Wüsste nicht warum dashier nicht gehen sollte
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TFormvokverwalt.SpeedButton1Click(Sender: TObject); var i: Integer; begin if Savedialog1.Execute then begin daten := TStringList.Create; for i := 0 to 50 do daten.Add(StringGrid1.Rows[i]); daten.SaveToFile(SaveDialog1.FileName); daten.Free; end; end; |
Aya - Mi 14.02.07 18:26
F1 drücken...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TFormvokverwalt.SpeedButton1Click(Sender: TObject); var i: Integer; begin if Savedialog1.Execute then begin daten := TStringList.Create; for i := 0 to 50 do daten.Add(StringGrid1.Rows[i].Text); daten.SaveToFile(SaveDialog1.FileName); daten.Free; end; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!