Autor Beitrag
hibbert
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Mi 27.11.02 11:28 
hallo,
ich möchte gerne die endung einer datei (z.b. txt) auslesen.
denn ich speicher den inhalt einer listbox über den svedialog ab. mein problem ist, dass ich zwar im filter *.txt angeben kann, aber wenn ich gerne eine datei überschreiben möchte, schreibt er eine neue datei ! :shock: :?
(z.b ich erstelle die datei test.txt, und habe daten in meinem programm geändert, jetzt möchte ich diese wieder in der test.txt abspeichern, aber eine neute datei wird erstellt --> test.txt.txt . vielleicht lieg es ja auch daran:
ausblenden Quelltext
1:
listbox1.Items.SaveToFile(savedialog1.FileName+'.txt');					

gibt's da vielleicht auch noch einen anderen weg ?)

also, meine fragen: wie kann ich die endung auslesen?
und wie kann ich über den savedialog dateinen überschreiben?

mfg hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.11.02 11:40 
Klar liegt es daran. :roll: Überleg doch mal, was du machst bzw. das Programm.. Du wählst im Speicher-Unter-Dialog "Test.txt" aus und was machst du mit dieser Zeile:
ausblenden Quelltext
1:
listbox1.Items.SaveToFile(savedialog1.FileName+'.txt');					

Du hängst noch mal ".txt" hinten dran. :?

Einfach mal überlegen, was man eigentlich macht bzw. was da eigentlich passiert. :wink:
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 27.11.02 11:51 
Hallo,
hibbert hat folgendes geschrieben:
ausblenden Quelltext
1:
listbox1.Items.SaveToFile(savedialog1.FileName+'.txt');					

gibt's da vielleicht auch noch einen anderen weg ?)

also, meine fragen: wie kann ich die endung auslesen?
und wie kann ich über den savedialog dateinen überschreiben?

Der Savedilog Speichert garnicht. Er hilft nur beim ermitteln des Dateinamens. Da du immer die Endung TXT anhängst, ist es klar das du dinge Text.txt.txt rauskriegst. Du solltest über ExtractFileExt überprüfen, ob der ausgewählte Dateiname eine Dateiendung besitzt.

Das könnte so aussehen:
ausblenden Quelltext
1:
2:
3:
4:
if (ExtractFileExt(savedialog1.FileName) = '') then
  listbox1.Items.SaveToFile(savedialog1.FileName+'.txt')
else
  listbox1.Items.SaveToFile(savedialog1.FileName);


Gruß
Klabautermann
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.11.02 13:20 
Versuch das mal:

ausblenden Quelltext
1:
listbox1.Items.SaveToFile(ChangeFileExt(savedialog1.FileName, '.txt'));					


Egal ob schon was da ist oder noch nichts da ist, die Datei wird immer mit einem ".txt" enden.
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Mi 27.11.02 15:51 
vielen dank !! genau das was ich gesucht habe !!
doch noch eine kleine frage zum schluss:
wie kann ich überprüfen, ob die datei abgespeichert wurde, d.h. ich möchte wissen, ob der user im savedialog auf speichern oder abbrechen geklickt hat. wie geht das ???
mfg hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 27.11.02 15:56 
ausblenden Quelltext
1:
SaveDialog1.Execute					

Liefert TRUE, wenn der Benutzer auf OK geklickt hat und FALSE, wenn er auf Abbrechen geklickt hat.

ausblenden Quelltext
1:
2:
3:
4:
5:
if SaveDialog1.Execute then
begin
  Anweisung1;
  Anweisung2;
end;