Autor |
Beitrag |
ak
      
Beiträge: 240
Suse Windows 9 XP
D6 Professional
|
Verfasst: So 29.06.03 13:57
Hallo Leute,
ich möchte eine Datei öffnen und etwas ans Ende reinschreiben. Das funktioniert mit folgendem Quelltext sehr gut:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| if opendialog1.Execute=True then dateiname := opendialog1.FileName;
assignfile(d,dateiname); rewrite(d); WriteLn(d,'hallo'); closefile(d); |
aber ohne die Befehlszeile "rewrite(d);", die ja eine neue Datei erstellt und eine alte evtl. schon vorhandene Datei löscht, bekomme ich immer eine Fehlermeldung. Weiss jemand warum? Ich möchte auch an eine schon vorhandene Datei etwas anhängen.
Gruß AK
Moderiert von Tino: Delphi-Tags hinzugefügt.
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: So 29.06.03 14:04
lies dir mal durch, was in der OH zu rewrite und append steht
mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
ak 
      
Beiträge: 240
Suse Windows 9 XP
D6 Professional
|
Verfasst: So 29.06.03 14:07
|
|
Tweafis
      
Beiträge: 647
WinXP + fbsd
Delphi 5 Prof
|
Verfasst: So 29.06.03 14:20
OH, die - Online Hilfe, die, über F1 zu erreichen 
_________________ .: Es wird der Tag kommen, an dem wir es nicht mehr ändern können :.
|
|
ak 
      
Beiträge: 240
Suse Windows 9 XP
D6 Professional
|
Verfasst: So 29.06.03 15:49
hehe...bin leider etwas im Stress
ich habs jetzt so gemacht...
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| if opendialog1.Execute=True then dateiname := opendialog1.FileName;
assignfile(d,dateiname); append(d); WriteLn(d,'hallo'); Flush(d); closefile(d); end; |
Gruß AK
Moderiert von Tino: Code- durch Delphi-Tags ersetzt.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 29.06.03 16:29
Öhm, was passiert, wenn der Benutzer beim dateiöffnendialog auf Abbrechen Klickt? dann dürfte dein programm abstürzen, da dann die Variable "dateiname" einen ubestimmten Wert hat.
|
|
MAlsleben
      
Beiträge: 303
W2k,WinXP
D3 - DXE3 Enterprise
|
Verfasst: Mo 30.06.03 08:25
Hi,
Luckie, das Programm dürfte eigentlich nicht abstürzen, da die Bedingung in der If -Schleife nicht erfüllt wird. Auszug aus Delphi -Hilfe:
Delphi-Hilfe hat folgendes geschrieben: | Die Methode Execute zeigt das Dialogfeld zur Dateiauswahl an.
Delphi-Quelltext 1:
| function Execute: Boolean; override; |
Beschreibung
Execute öffnet das Dialogfeld zur Auswahl von Dateien und gibt True zurück, wenn der Benutzer eine Datei ausgewählt und auf OK geklickt hat. Klickt der Benutzer auf Abbrechen, liefert Execute False zurück. |
Gruß Micha
Moderiert von Tino: Quote-Tags hinzugefügt.
_________________ Viele Wege führen nach Rom.
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Mo 30.06.03 08:48
@MAlsleben
ja und? ak hat aber ein begin und end vergessen. Sowie der Code jetzt dasteht, werden die Daten immer geschrieben, egal, was der User im Opendialog geklickt hat.
2. möglicher Fehler (je nachdem was das Prog machen soll, bzw. wie der opendialog eingestellt ist)
was passiert, wenn der user eine Datei auswählt, die noch gar nicht existiert?
onlinehilfe zu Append hat folgendes geschrieben: |
Ist die Datei mit dem angegebenen Namen nicht vorhanden, tritt ein Fehler auf.
|
Mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
MAlsleben
      
Beiträge: 303
W2k,WinXP
D3 - DXE3 Enterprise
|
Verfasst: Mo 30.06.03 09:38
Keldorn,
da hast Du natürlich recht, ich habe nur am Schluß das "end"gesehen und hab' übersehen , das der ganze Block in Begin und end muß. Eben nicht genau hingeschaut.
Das die Options entsprechend eingestellt werden, ist selbstverstänlich.
Gruß Micha.
_________________ Viele Wege führen nach Rom.
|
|