unable to create file 'Dt\Init.txt'

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

unable to create file 'Dt\Init.txt'

Beitrag von Aliobaba »

Hallo,

seit kurzer Zeit kommt bei mir beim Beenden meines Programms immer folgender Fehler:

unable to create file 'Dt\Init.txt'

Natürlich habe ich schon die Suchfunktion bemüht, komme aber nicht weiter.

Eigenartig ist, dass der Fehler immer nur ein einzigesmal pro PC-Start vorkommt, dann nicht mehr. Ich muss mein Programm also mit "Cancel" abschließen und kann dann das Programm beliebig oft starten: Der Fehler tritt nicht mehr auf.

Der Fehler tritt auch auf, wenn das Programm sich an einem anderen Ort der Festplatte sich befindet, aber auch da nur beim ersten Programmstart.

Woran könnte das liegen??

Gruß
Aliobaba


"Ende-Button-Click" --->

Code: Alles auswählen

for i := 0 to 9 do    Listbx.Items.Add('0');
 
Listbx.Items [0] := inttostr(Fenster_gross_TOP);
Listbx.Items [1] := inttostr(Fenster_gross_LEFT);
Listbx.Items [2] := inttostr(form2.Top);
Listbx.Items [3] := inttostr(form2.Left);
Listbx.Items [4] := inttostr(Tooltips_sind_ein);
Listbx.Items [5] := inttostr(Fenster_klein_TOP);
Listbx.Items [6] := inttostr(Fenster_klein_LEFT);
Listbx.Items [7] := Datenbankpfad;
 
Form1.ListBx.Items.SavetoFile('Dt\Init.txt');
//      unable to create file 'Dt\Init.txt'
 
Application.Terminate;   
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: unable to create file 'Dt\Init.txt'

Beitrag von theo »

Schon mal mit einem absoluten Pfad probiert?

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: unable to create file 'Dt\Init.txt'

Beitrag von Aliobaba »

Hallo,

... den absoluten Pfad noch nicht, da der Anwender ja den Ordner hinkopieren darf wo er will.

Aber das folgende habe ich probiert:
(Also File zuerst gelöscht und neu speichern lassen - und auch Pfad im Programm "neu bilden" lassen: gleiches Programmverhalten)

Code: Alles auswählen

//...
 Listbx.Items [7] := Datenbankpfad;
{
 if FileExists(ExtractFilePath(ParamStr(0)) + 'Dt\Init.txt') then
    Showmessage(ExtractFilePath(ParamStr(0)) + 'Dt\Init.txt') else
    Showmessage(ExtractFilePath(ParamStr(0)) + 'Dt\Init.txt _ nicht da');
 }

// deletefile(ExtractFilePath(ParamStr(0)) + 'Dt\Init.txt');
 DeleteFile('Dt\Init.txt');
 Form1.ListBx.Items.SavetoFile(ExtractFilePath(ParamStr(0)) + 'Dt\Init.txt');
//   Form1.ListBx.Items.SavetoFile('Dt\Init.txt');
//      unable to create file 'Dt\Init.txt'           
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: unable to create file 'Dt\Init.txt'

Beitrag von Aliobaba »

... aber das mit dem absoluten Pfad könnte jetzt der entscheidende Hinweis sein: Offenbar "merkt" sich mein Programm irgendwo den falschen Pfad und "korrigiert" sich erst nach dem zweiten Programmaufruf. :idea:
Da werde ich gleich 'mal morgen früh weiter sehen! Vielen Dank!

Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2641
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: unable to create file 'Dt\Init.txt'

Beitrag von m.fuchs »

Aliobaba hat geschrieben:... aber das mit dem absoluten Pfad könnte jetzt der entscheidende Hinweis sein: Offenbar "merkt" sich mein Programm irgendwo den falschen Pfad und "korrigiert" sich erst nach dem zweiten Programmaufruf.

Unterscheiden sich erster und folgende Starts voneinander? Zum Beispiel: erster Start wird durch eine Verknüpfung im Autostart-Menü ausgelöst, dann funktioniert es nicht und du startest es händisch aus dem Ordner und es geht.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: unable to create file 'Dt\Init.txt'

Beitrag von Aliobaba »

Hallo,

... nein, die Programmstarts unterscheiden sich nicht;
Beim ersten Programmstart entweder nach dem Hochfahren des PC's oder auch sogar nach einem Neucompilieren kommt dieses Fehlermeldung; später nicht mehr.
Ich habe auch die Pfade kontrolliert. Das Programm liest die Pfade von der Init-Datei völlig korrekt ein.

Aber möglicherweise habe ich die Lösung des Problems: Es könnte der Virenscanner sein (Avast).
Meine Theorie: Beim ersten Abspeichern der "Init"-Datei, weiß "Avast" noch nicht, "ob er das darf" (???)

Etwas unbescheidene Frage:
Hat dieses Verhalten bei "Meinem" Programm noch jemand?? http://www.mymemorydb.n-bay.de/

Ich melde mich wieder, wenn ich was Konkreteres und "Handfesteres" rausgefunden habe.

Viele Grüße
A. Geigenberger
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: unable to create file 'Dt\Init.txt'

Beitrag von hde »

Aliobaba hat geschrieben:Form1.ListBx.Items.SavetoFile('Dt\Init.txt');
// unable to create file 'Dt\Init.txt


Warum speicherst du Init.txt in einem Subdirectory? Ist dieses vorhanden?

hde

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: unable to create file 'Dt\Init.txt'

Beitrag von Aliobaba »

Hallo hde,

das Verzeichnis " /dt " ist vorhanden, da ist die Datenbankdatei " bt.b " drin.
... aber der Verdacht, dass das Virenprogramm schuld ist, verhärtet sich.

Viele Grüße

A. Geigenberger
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: unable to create file 'Dt\Init.txt'

Beitrag von wp_xyz »

Ich habe auch die Pfade kontrolliert. Das Programm liest die Pfade von der Init-Datei völlig korrekt ein.

Aber dein Problem ist doch, dass die Init-Datei nicht angelegt werden kann.

Wie oben jemand schon gesagt hat: Existiert das Unterverzeichnis? Vermeide den relativen Pfad - wer weiß, in welche Verzeichnisse dein Programm vorher gewechselt ist...

Den Virenscanner habe ich weniger im Verdacht, aber trotzdem: Schalte ihn einfach mal kurz aus. Hast du dasselbe Fehlerverhalten?

Aliobaba
Lazarusforum e. V.
Beiträge: 496
Registriert: Di 1. Mai 2012, 09:11

Re: unable to create file 'Dt\Init.txt'

Beitrag von Aliobaba »

Hallo,
.... es war eindeutig der Virenscanner.
Er läßt das Schreiben erst beim 2.mal zu, möchte wohl also das File erstmal "kennenlernen". :?: :|

Danke!
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: unable to create file 'Dt\Init.txt'

Beitrag von hde »

Ein Virenscanner, bei dem es reicht einen zweiten Versuch zu starten um eine Sperre zu umgehen? :wink:
So ein Ding braucht doch wohl Niemand

Antworten