Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - (delphi) TSaveDialog hilfe (letzterbeitrag)
ppl - Fr 22.08.08 18:18
Titel: (delphi) TSaveDialog hilfe (letzterbeitrag)
Guten Abend,
ich finde einfach kein Codeschnipsel wie ich wenn ich auf dem ok button drücke,
ein zielort zum speichern der txtfile nehmen kann, momentan habe ich das so gelößt:
Delphi-Quelltext
1: 2: 3: 4:
| FileName: String; begin
FileName := 'C:\test.txt'; |
Blackheart666 - Fr 22.08.08 18:24
OpenDialog, SaveDialog
Jerk - Fr 22.08.08 18:25
Evtl kann dir ja die Komponente TsaveDialog weiterhelfen, ansonsten musste halt nen Editfeld oder ne Shellist benutzen um den Speicherort vom benutzen eingeben lassen zu können.
ppl - Fr 22.08.08 19:08
das mit dem tedit feld wüsste ich wie es geht,
aber ich raff das mit opendialog und savedialog nicht,
tsavedialog hmm weiß auch net mehr,
kann mir einer villt detailierter helfen?
Xentar - Fr 22.08.08 19:43
Hast du dir schonmal die Hilfe davon angesehen?
So umfangreich sind die nun nicht, als dass man das nicht durchlesen könnte...
ppl - So 24.08.08 15:31
Funktiniert immer noch nicht so ganz,
meine txt file wird nicht mehr abgespeichert,... woran liegt das?
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:
| FileName: String;
saveDialog : TSaveDialog; begin
saveDialog := TSaveDialog.Create(self);
saveDialog.Title := 'Save your word file';
saveDialog.InitialDir := GetCurrentDir;
saveDialog.Filter := 'Text file (.txt)|*.txt';
saveDialog.DefaultExt := 'txt';
saveDialog.FilterIndex := 1;
if saveDialog.Execute then ShowMessage('File : '+saveDialog.FileName) else ShowMessage('Save file was cancelled');
saveDialog.Free; |
Xentar - So 24.08.08 15:38
Es könnte daran liegen, dass du garnichts speicherst, sondern dir nur den gewählten Dateinamen anzeigen lässt (Zeile 20).
Boldar - So 24.08.08 15:38
Als erstes erzeugst du den Tsavedialog nicht dynamisch, sondern ziehst ihn einfach auch die Form (Seite Dialoge).Dann:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var f: textfile; begin
if savedialog1.execute then begin assignfile (f, savedialog1.filename); if fileexists (savedialog1.filename) then reset(f) else rewrite(f); write (f, 'blablabla'); closefile(f); |
ppl - So 24.08.08 15:52
sorry das ich das noch nicht so auf anhiep verstehe aber ich code noch nicht lange mit delphi,
also
bloader danke das hilft mir schon einen großen schritt weiter, nur wo bei dir steht blablala wo mein text rein soll, habe ich das prob das ich eine wordlist generiere,.. und ich nicht weiß wie ich das comando dort einfüge
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| SetLength(Map, 0);
if checkbox1.checked then begin SetLength(Map, Length(Map)+26); Map[High(Map)-25] := 'A'; Map[High(Map)-24] := 'B'; Map[High(Map)-23] := 'C'; Map[High(Map)-22] := 'D'; Map[High(Map)-21] := 'E'; |
und das muss der doch da jetzt speichern,... aber wie, ich verstehe das nicht, mein alter code
Delphi-Quelltext
1: 2: 3: 4:
| FileName: String; begin
FileName := 'C:\test.txt'; |
hat es ja ohne prob hinbekommen, ist halt nur beschissen das der das nicht dorthinspeichert wo ich es brauche/will
elundril - So 24.08.08 16:03
Delphi-Quelltext
1: 2:
| if savedialog1.execute then Filename := Savedialog1.Filename; |
so kannst du einen dynamischen speicherpfad machen. jedoch würd ich die von dir benutzte variable "Filename" in "Dateiname" umbenennen um nicht fehler mit savedialogs o.ä. zu provozieren.
lg elundril
ppl - So 24.08.08 16:12
hey danke so klappt das wunderbahr, habe mich jetzt damit 2 tage rumgeschlagen >.<
Blackheart666 - So 24.08.08 16:20
elundril hat folgendes geschrieben: |
Delphi-Quelltext 1: 2:
| if savedialog1.execute then Filename := Savedialog1.Filename; |
so kannst du einen dynamischen speicherpfad machen. jedoch würd ich die von dir benutzte variable "Filename" in "Dateiname" umbenennen um nicht fehler mit savedialogs o.ä. zu provozieren.
lg elundril |
Und genau das liefert die Hilfe wenn man SaveDialog dort eintippt, das hättest du aber in zwei Tagen finden können. :wink:
ppl - So 24.08.08 16:26
meine liefert mir sowas type TSaveDialog = class (Dialogs.TOpenDialog);
das habe ich net verstanden,
nun was ich jetzt nicht schaffe ist das hier einzufügen,... der gibt mir immer nen fehler raus
Delphi-Quelltext
1: 2: 3:
| if saveDialog.Execute then ShowMessage('File : '+saveDialog.FileName) else ShowMessage('Save file was cancelled'); |
außerdem were ex nicht schlecht wenn es auch als txt gespeichert wird,... ich schtaffe es nicht den code so zusammen zu führen
kann mir einer tips oder hilfe hierzu geben?
elundril - So 24.08.08 16:33
du solltest dir echt den link anschauen!
wenn du nun auch eine bestätigung ausgeben willst darfst du nich 2 mal execute aufrufen. execute führt den dialog aus und zeigt ihn an. und gibt dir als boolean zurück ob er erfolgreich (mit der OK-Taste) oder nicht erfolgreich (mit der Abbrechen-Taste) ausgeführt wurde. willst du in einem if-block nun mehrere anweisungen haben musst du mit begin und end arbeiten. Aber aufpassen!!! vor einem else darf kein strichpunkt kommen. das ganze sieht dann so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var Dateiname: string; begin if SaveDialog1.Execute then begin Dateiname := SaveDialog1.Filename; Showmessage('Datei (' + Dateiname + ' wurde erfolgreich gespeichert.'); end else Showmessage('Der speichervorgang wurde abgebrochen'); |
lg elundril
//edit: hochkomma vergessen!
ppl - So 24.08.08 16:55
hey vielen dank du bist echt der beste, den link habe ich mir schon gespeichert, werde gleich mal reingucken wenn ich hier paar sachen erledigt habe vielen dank
werde dein codevorschlag gleich mal reinsetzen , hoffentlich funzt es
mfg
ppl - So 24.08.08 17:28
so elluigi,
irgendwas war da nicht gans richtig, beim compilieren kommen diese fehler die ich mir nicht alle erklären kann.
Delphi-Quelltext
1: 2:
| 75: Showmessage(Datei (' + Dateiname + 'wurde erfolgreich gespeichert.'); 76: end |
Quelltext
1: 2: 3: 4: 5: 6:
| [Pascal Fehler] Unit1.pas(75): E2003 Undefinierter Bezeichner: 'Datei' [Pascal Fehler] Unit1.pas(75): E2029 ')' erwartet, aber Bezeichner 'wurde' gefunden [Pascal Fehler] Unit1.pas(75): E2066 Operator oder Semikolon fehlt [Pascal Fehler] Unit1.pas(75): E2052 Nicht abgeschlossener String [Pascal Fehler] Unit1.pas(76): E2014 Anweisung erforderlich, aber Ausdruck vom Typ 'string' gefunden [Pascal Fataler Fehler] Project1.dpr(5): F2063 Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Blackheart666 - So 24.08.08 17:36
Steht doch alles in der Fehlerbeschreibung geh die doch mal einzeln durch angefangen mit was ist Datei ?
ppl - So 24.08.08 17:43
also ich dachte das man datei bei var definiren muss aber keine ahnung wie genau :(
Xentar - So 24.08.08 17:46
Da fehlt einfach nur ein '
Blackheart666 - So 24.08.08 17:53
Xentar hatt es ja nun schon verraten Datei ist ein String gehöhrt allso in 'Datei'
Delphi-Quelltext
1:
| Showmessage('Datei (' + Dateiname + ') wurde erfolgreich gespeichert.'); |
Schau dir nur langsam den Crashkurs an. :wink:
ppl - So 24.08.08 17:53
danke das ' kommt vor Datei also : 'Datei
wäre da nicht alleine drauf gekommen,..
na ja hoffentlich lerne ich es bald ^^
danke nochmal an alle die mir geholfen haben!
mfg
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!