Entwickler-Ecke
Dateizugriff - Textdatei an bestimmte Stelle speichern
stigge - So 25.03.07 22:23
Titel: Textdatei an bestimmte Stelle speichern
Ich lasse ein paar Editfelder mit opendialogen befüllen.
Wenn ich die Editfelder jetzt aber in eine Textdatei speichere, speichert er sie immer dahin, wo ich als letztes mit dem opendialog war. Frage: Wie kann ich die Datei in den gleichen Ordner wie das Programm speichern?
Kleiner Ausschnitt des Quelltextes:
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: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| procedure TForm2.Button9Click(Sender: TObject); begin opendialog8.Execute; edit9.Text := opendialog8.FileName; end;
procedure TForm2.Button10Click(Sender: TObject); begin opendialog9.Execute; edit10.Text := opendialog9.FileName; end;
procedure TForm2.Button11Click(Sender: TObject); var schreiben: textfile; begin if edit1.Text = '' then begin exit; end else assignfile(schreiben, 'paths.txt'); rewrite(schreiben); writeln(schreiben, edit1.Text); writeln(schreiben, edit2.Text); writeln(schreiben, edit11.Text); writeln(schreiben, edit3.Text); writeln(schreiben, edit12.Text); writeln(schreiben, edit4.Text); writeln(schreiben, edit13.Text); writeln(schreiben, edit5.Text); writeln(schreiben, edit14.Text); writeln(schreiben, edit6.Text); writeln(schreiben, edit15.Text); writeln(schreiben, edit7.Text); writeln(schreiben, edit16.Text); writeln(schreiben, edit8.Text); writeln(schreiben, edit17.Text); writeln(schreiben, edit9.Text); writeln(schreiben, edit18.Text); writeln(schreiben, edit10.Text); writeln(schreiben, edit19.Text); closefile(schreiben); edit1.clear; edit2.clear; edit3.clear; edit4.clear; edit5.clear; edit6.clear; edit7.clear; edit8.clear; edit9.clear; edit10.clear; edit11.clear; edit12.clear; edit13.clear; edit14.clear; edit15.clear; edit16.clear; edit17.clear; edit18.clear; edit19.clear; form1.Show; form2.Hide; end; |
Moderiert von
Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 25.03.2007 um 22:24
Blackheart666 - So 25.03.07 22:34
ExtractFilePath(ParamStr(0)
Grausig deinen Code würd Ich an deiner Stelle nochmal überdenken.
stigge - So 25.03.07 22:37
Blackheart666 hat folgendes geschrieben: |
ExtractFilePath(ParamStr(0)
Grausig deinen Code würd Ich an deiner Stelle nochmal überdenken. |
Naja, läuft eigentlich sehr schnell.
Delphi-Quelltext
1:
| ExtractFilePath(ParamStr(0) |
Ja schon, aber wann und wie kann ich ihm den Pfad mitgeben?
Bei einer listbox oder Ähnlichem wäre es ja klar, aber wie mache ich es bei dieser Art von Schreiben?
stigge - So 25.03.07 22:42
So klappt's zumindest nicht:
Delphi-Quelltext
1:
| assignfile(schreiben, ExtractFilePath(Application.Exename)); |
Blackheart666 - So 25.03.07 22:46
Na genauso,ExtractFilePath liefert dir den Pfad zur Exe dann nur deinen Dateinamen noch dran fertsch.
Bei den ganzen Clears schau mal nach FindKomponent.
Und 10 OpenDialoge sind doch bestimmt auch nicht nötig.
Delphi-Quelltext
1:
| assignfile(schreiben, ExtractFilePath(ParamStr(0) +'Path.txt'); |
stigge - So 25.03.07 22:50
Blackheart666 hat folgendes geschrieben: |
Na genauso,ExtractFilePath liefert dir den Pfad zur Exe dann nur deinen Dateinamen noch dran fertsch.
Bei den ganzen Clears schau mal nach FindKomponent.
Und 10 OpenDialoge sind doch bestimmt auch nicht nötig.
Delphi-Quelltext 1:
| assignfile(schreiben, ExtractFilePath(ParamStr(0) +'Path.txt'); | |
Kommt der gleiche Fehler wie immer:
Ungültiger Dateiname
Wahrscheinlich kann man nur den Dateinamen zuweisen, aber nicht den Pfad. Aber es muss doch irgendwie möglich sein!
stigge - So 25.03.07 22:52
Eingerückt hab ich noch nie geschrieben und Namensgebung, naja, manchmal fällt mir der Name nicht auf die Schnelle nicht ein. Siehe "Irgendwas-Zeichen" :oops:
Christian S. - So 25.03.07 22:54
stigge hat folgendes geschrieben: |
Wahrscheinlich kann man nur den Dateinamen zuweisen, aber nicht den Pfad. |
Natürlich kann man auch den Pfad zuweisen, weil er Teil des Dateinamens ist. Wenn Du ihn nicht mit angibst, wird das aktive Verzeichnis verwendet, wie Du ja am eigenen Leib erfahren hast.
Lass Dir mal ausgeben , was
ExtractFilePath(ParamStr(0))+'Path.txt' ist. Vielleicht fehlt da irgendwo noch ein Backslash.
Und bitte nutze die Edit-Funktion im Forum, falls Du in nur wenigen Minuten Abstand noch was zu Deinem Beitrag hinzufügen möchtest.
Blackheart666 - So 25.03.07 22:59
Da fehlte auch noch eine Klammer
Delphi-Quelltext
1:
| assignfile(schreiben, ExtractFilePath(ParamStr(0)) +'Path.txt'); |
stigge - So 25.03.07 22:59
Christian S. hat folgendes geschrieben: |
stigge hat folgendes geschrieben: | Wahrscheinlich kann man nur den Dateinamen zuweisen, aber nicht den Pfad. | Natürlich kann man auch den Pfad zuweisen, weil er Teil des Dateinamens ist. Wenn Du ihn nicht mit angibst, wird das aktive Verzeichnis verwendet, wie Du ja am eigenen Leib erfahren hast.
Lass Dir mal ausgeben , was ExtractFilePath(ParamStr(0))+'Path.txt' ist. Vielleicht fehlt da irgendwo noch ein Backslash.
Und bitte nutze die Edit-Funktion im Forum, falls Du in nur wenigen Minuten Abstand noch was zu Deinem Beitrag hinzufügen möchtest. |
Ich hab's raus!
Delphi-Quelltext
1: 2: 3: 4:
| var pfad: string;
pfad := ExtractFilePath(ParamStr(0)); pfad := pfad+'paths.dat'; |
Er hat einfach nicht das pfade.txt hinten drangehängt. Danke Leute!
Christian S. - So 25.03.07 23:01
Lass mich raten, Du hattest die letzte Klammer falsch gesetzt, sodass dieses hier dabei heraus kam:
Delphi-Quelltext
1:
| ExtractFilePath(ParamStr(0)+'paths.dat'); |
Deines ist nämlich identisch mit dem, was ich schrieb:
Delphi-Quelltext
1:
| ExtractFilePath(ParamStr(0))+'paths.dat'; |
stigge - Mo 26.03.07 13:02
Christian S. hat folgendes geschrieben: |
Lass mich raten, Du hattest die letzte Klammer falsch gesetzt, sodass dieses hier dabei heraus kam:
Delphi-Quelltext 1:
| ExtractFilePath(ParamStr(0)+'paths.dat'); |
Deines ist nämlich identisch mit dem, was ich schrieb:
Delphi-Quelltext 1:
| ExtractFilePath(ParamStr(0))+'paths.dat'; | |
Ich hab's einfach von oben rauskopiert und nicht weiter darüber nachgedacht, weil ich sowieso dachte, das es nicht klappt :wink:
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!