Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler beim speichern einer ListBox (https://www.delphipraxis.net/8082-fehler-beim-speichern-einer-listbox.html)

Tim.exe 28. Aug 2003 10:02


Fehler beim speichern einer ListBox
 
Hallo, bei folgendem Code bekomme ich manchmal eine Fehlermeldung, wie gesagt nur manchmal, meistens funktioniert es aber. Jetzt ist die Frage warum nicht immer???

Delphi-Quellcode:
Try
ListBox1.Items.SaveToFile(ExtractFilepath(Application.Exename)+'Test\Test'+' '+Datum.Caption +' Uhr.txt');
Except
MKDir(ExtractFilepath(Application.Exename)+'Test');
ListBox1.Items.SaveToFile(ExtractFilepath(Application.Exename)+'Test\Test'+' '+Datum.Caption +' Uhr.txt');
end;
end;
Da Windows ja einen Fehler anzeigt wenn man versucht in einem Dateinamen mit Doppelpunkt zu arbeiten ist Datum.Caption ein formatiertes Label
(Format: d. mmmm yyyy hh.mm.ss)

axelf98 28. Aug 2003 10:49

Re: Fehler beim speichern einer ListBox
 
Hmm.. Versuch mal die Datumswerte rauszunehmen. Wenn dann kein Fehler mehr auftritt, liegts daran. Dateinamen dürfen nämlich keine Doppelpunkte haben.
Wenn es aber trotzdem eine Zeit sein soll, musst du wohl die Doppelpunkte entfernen.

Memo 28. Aug 2003 10:58

Re: Fehler beim speichern einer ListBox
 
Zitat:

Zitat von axelf98
Versuch mal die Datumswerte rauszunehmen. Wenn dann kein Fehler mehr auftritt, liegts daran. Dateinamen dürfen nämlich keine Doppelpunkte haben.
Wenn es aber trotzdem eine Zeit sein soll, musst du wohl die Doppelpunkte entfernen.

Hab ich mich jetzt verlesen oder du? Wenn ich richtig verstanden habe, hat er das mit den Doppelpunkten schon erkannt.

@Tim.exe Kannst du uns auch sagen, welche Fehlermeldung kommt?
Hast du mal in der Hilfe unter SavetoFile nachgelesen? Da steht was zur Fehlerbehandlung.

Tim.exe 28. Aug 2003 11:04

Re: Fehler beim speichern einer ListBox
 
Hallo,

in Datum.Caption ist kein Doppelpunkt, Datum.Caption sieht zur Laufzeit etwa so aus:

28. August 2003 12.00.33

Ha, jetzt hab ich es wieder probiert und es kommt kein Fehler. Der wird aber bestimmt wieder kommen. Die Fehlermeldung lautet etwa so:


"Datei Test 28. August 2003 12.00.33.txt kann nicht erstellt werden."

Memo 28. Aug 2003 11:13

Re: Fehler beim speichern einer ListBox
 
Zitat:

Zitat von Tim.exe
"Datei Test 28. August 2003 12.00.33.txt kann nicht erstellt werden."

Weil evt. das Verzeichnis nicht existiert!? Schau in die Hilfe zur Fehlerbehandlung von SaveToFile.

Tim.exe 28. Aug 2003 13:09

Re: Fehler beim speichern einer ListBox
 
Hmm irgendwie finde ich dazu nichts passendes...

Memo 28. Aug 2003 13:45

Re: Fehler beim speichern einer ListBox
 
Also nochmal. Im Try-Teil versuchst du eine Datei anzulegen. Geht das nicht, denkst du durch except das Verzeichnis anzulegen.
FALSCH GEDACHT.
Es kommt nur dann keine Fehlermeldung wenn im Try-Teil die Datei erstellt werden kann.
Als ich schrieb du sollst in die Hilfe schauen, meinte ich
Zitat:

MkDir legt ein neues Unterverzeichnis an.

Unit

System

Kategorie

Ein-/Ausgabe

procedure MkDir(S: string);

Beschreibung

MkDir legt in dem mit S angegebenen Pfad ein neues Unterverzeichnis an. Das letzte Element der Pfadangabe darf kein Name einer vorhandenen Datei sein.

Hinweis

Mit dem Compiler-Schalter {$I+} können Laufzeitfehler durch Exceptions behandelt werden. Wird {$I-} verwendet, muß explizit mit IOResult auf E/A-Fehler geprüft werden.
Sorry, mein Fehler.
Also anders rum. Erst Verzeichnis prüfen, dann Datei anlegen.

Tim.exe 28. Aug 2003 14:18

Re: Fehler beim speichern einer ListBox
 
OK, vielen Dank.

Jetzt frag ich mich nur noch warum die Datei manchmal einwandfrei gespeichert wurde (mit obigem Code) und manchmal nicht...

Memo 28. Aug 2003 14:34

Re: Fehler beim speichern einer ListBox
 
Zitat:

Zitat von Tim.exe
Jetzt frag ich mich nur noch warum die Datei manchmal einwandfrei gespeichert wurde (mit obigem Code) und manchmal nicht...

Weil das Verzeichnis manchmal Vorhanden ist manchmal nicht?!!?

Brüggendiek 29. Aug 2003 01:52

Re: Fehler beim speichern einer ListBox
 
Hallo Tim!

Zunächst ist es schlechter Stil, zu Speichern und dann beim Fehler das Dir anzulegen. Außerdem muß dann der Speichern-Aufruf doppelt vorhanden sein und ggf. auch doppelt geändert werden.

Lege das Dir doch einfach mit "ForceDirectories" an - das klappt immer und legt komplette Pfade an, während Mkdir nur ein Dir in einem bestehenden erzeugt.

Daß die Fehlermeldung "manchmal" kommt, kann auch daran liegen, daß Du Dein Programm mal in der IDE und mal außerhalb gestartet hast. Normalerweise stoppt das Programm in der IDE nämlich bei Exceptions, auch wenn diese mit TRY abgefangen sind (kann man in Projekt - Optionen einstellen!), außerhalb der IDE wird dagegen die Exception abgefangen und der EXCEPT-Teil kommentarlos durchlaufen

Gruß

Dietmar Brüggendiek


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz