invalid filename
invalid filename
Hallo,
seit Jahren ist dieses Programm: https://www.heise.de/download/product/mymemorydb-89626 bereits "auf dem Markt". In der letzten Woche bekomme ich plötzlich von zwei Anwendern, die das Programm testen wollten, unabhängig voneinander die Rückmeldung, dass nach der Abfrage der Nutzerbdingungen (das Programm startet also!) die Meldung erscheint: „invalid filename“ . Beide Anwender wollten das Programm unter Windows 10 starten, mit Windows-Versionen < 10 funktioniert alles gut, ebenso vällig problemlos unter Linux.
Ein Start im Kompatibilitätsmodus half nicht, auch nicht ein Start "als Administrator"
Jemand eine Idee? (andere SQLite-Version unter Windows 10?)
Aliobaba
seit Jahren ist dieses Programm: https://www.heise.de/download/product/mymemorydb-89626 bereits "auf dem Markt". In der letzten Woche bekomme ich plötzlich von zwei Anwendern, die das Programm testen wollten, unabhängig voneinander die Rückmeldung, dass nach der Abfrage der Nutzerbdingungen (das Programm startet also!) die Meldung erscheint: „invalid filename“ . Beide Anwender wollten das Programm unter Windows 10 starten, mit Windows-Versionen < 10 funktioniert alles gut, ebenso vällig problemlos unter Linux.
Ein Start im Kompatibilitätsmodus half nicht, auch nicht ein Start "als Administrator"
Jemand eine Idee? (andere SQLite-Version unter Windows 10?)
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: invalid filename
Aufgrund der Verzeichnisstruktur von W10 vermute ich das Problem dort. Die sichtbaren Ordner gibt es nicht, fast alle Ordnernamen sind Verknüpfungen.
Das beste wäre ein Debug auf W10 (z.B. in einer Virtuellen Installation. Eventuell spielt auch ein Leerzeichen im Pfad einen Streich?
Das beste wäre ein Debug auf W10 (z.B. in einer Virtuellen Installation. Eventuell spielt auch ein Leerzeichen im Pfad einen Streich?
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
-
- Beiträge: 760
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: invalid filename
Ich habe schon oft Probleme gehabt, weil die Verzeichnisnamen im Windows Explorer nicht der Verzeichnisstruktur auf der Platte entsprechen.
Den Ordner C:\Benutzer zum Beispiel gibt es garnicht. Geht man mal auf Commnd Ebene wird man feststellen dass der Ordner C:\Users heisst.
Da gibt es noch einige Ordner wo Windows sich "meiner Meinung nach Willkürlich" einen eignen Namen ausdenkt.....
Vielleicht hilft es Dir weiter.
Habe auch im Hautpverzeichnis angeblich 2 Ordner namens C:\Programme wie das wohl gehen solll
Wenn ich in Command mir das Hauptverzeichnis C:\ ansehe mit Dir p*
erscheinen alle Programme und Verzeichnisse mit dem Anfangsbuchstaben "p"
aber der Ordner Programme gibt es nicht. Ich kann aber in diesen Ordner wechseln mit "cd Programme"
Sehr merkwürdig alles....
Mit
oder
FileExists('blBla')....
evtl. mal prüfen
Siro
Den Ordner C:\Benutzer zum Beispiel gibt es garnicht. Geht man mal auf Commnd Ebene wird man feststellen dass der Ordner C:\Users heisst.
Da gibt es noch einige Ordner wo Windows sich "meiner Meinung nach Willkürlich" einen eignen Namen ausdenkt.....
Vielleicht hilft es Dir weiter.
Habe auch im Hautpverzeichnis angeblich 2 Ordner namens C:\Programme wie das wohl gehen solll

Wenn ich in Command mir das Hauptverzeichnis C:\ ansehe mit Dir p*
erscheinen alle Programme und Verzeichnisse mit dem Anfangsbuchstaben "p"
aber der Ordner Programme gibt es nicht. Ich kann aber in diesen Ordner wechseln mit "cd Programme"
Sehr merkwürdig alles....
Mit
Code: Alles auswählen
if DirectoryExists('c:\programme') then caption:='ja';
FileExists('blBla')....
evtl. mal prüfen
Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Re: invalid filename
Danke für diese Hinweise!!
Leider habe ich gerade kein Windows 10 verfügbar, werde aber sobald als möglich Euren Hinweisen nachgehen - und berichten! Danke dafür!!
Dass der selbe Ordner mal C:\Users heißt und dann wieder C:\Benutzer ist natürlich schon - freundlich ausgedrückt - "überraschend".
Aliobaba
Leider habe ich gerade kein Windows 10 verfügbar, werde aber sobald als möglich Euren Hinweisen nachgehen - und berichten! Danke dafür!!
Dass der selbe Ordner mal C:\Users heißt und dann wieder C:\Benutzer ist natürlich schon - freundlich ausgedrückt - "überraschend".
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
Re: invalid filename
Ich nehme an, es ist ein Lazarus-Programm. Falls du selbst das Problem nicht reproduzieren kannst, wird dir nichts anderes übrig bleiben, als an kritischen Stellen in dem Quellcode Aufrufe von DebugLn(...) einzubauen, du brauchst dazu die Unit LazLogger. DebugLn hat gegenüber WriteLn den Vorteil, dass man unter Windows keinen Absturz erhält, wenn in den Projektoptionen "Win32-GUI-Anwendung" markiert ist, wie es standardmäßig der Fall ist. Du kannst dann die betroffenen User bitten, dein Programm mit dem Kommandozeilen-Parameter --debug-log=logdateiname zu starten. Je nachdem, wie gut die DebugLn-Aufrufe verteilt sind, siehst du dann an der Log-Datei, wie weit das Programm bis zum Absturz gekommen ist.
Zu LazLogger: http://wiki.freepascal.org/LazLogger
Zu LazLogger: http://wiki.freepascal.org/LazLogger
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: invalid filename
Unter Windows sollte man niemals direkte Pfade angeben, man sollte die Pfade immer ermitteln.Den Ordner C:\Benutzer zum Beispiel gibt es garnicht. Geht man mal auf Commnd Ebene wird man feststellen dass der Ordner C:\Users heisst.
http://www.tech-ecke.de/index_quereinst ... itteln.htm
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: invalid filename
Hallo,
ganz herzlichen Dank für Eure Hinweise! BEIDE Anwender haben nun mit folgendem Hinweis "MyMemoryDB" am Laufen:
Lt. dem o.g. Forumbeitrag "verbiegt" Windows 10 Dateinamen und Pfade.
Dass der selbe Ordner mal C:\Users heißt und dann wieder C:\Benutzer ist natürlich schon - freundlich ausgedrückt - "überraschend".
Vielleicht hilft folgendes Vorgehen:
Erstellen Sie sich doch mal "manuell" den Ordner C:\Mym_Test (zum Beispiel)
und kopieren Sie dort hinein das "MyMemoryDB-Zip-File". Versuchen Sie bitte dann den Start nochmal.
Danke!
Aliobaba
ganz herzlichen Dank für Eure Hinweise! BEIDE Anwender haben nun mit folgendem Hinweis "MyMemoryDB" am Laufen:
Lt. dem o.g. Forumbeitrag "verbiegt" Windows 10 Dateinamen und Pfade.
Dass der selbe Ordner mal C:\Users heißt und dann wieder C:\Benutzer ist natürlich schon - freundlich ausgedrückt - "überraschend".
Vielleicht hilft folgendes Vorgehen:
Erstellen Sie sich doch mal "manuell" den Ordner C:\Mym_Test (zum Beispiel)
und kopieren Sie dort hinein das "MyMemoryDB-Zip-File". Versuchen Sie bitte dann den Start nochmal.
Danke!
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
Re: invalid filename
Hallo Mathias,
das habe ich im Programm so gemacht. Aber wenn Windows10 unter verschiedenen Anwendungen verschiedene Namen für den selben Ordner liefert, dann gibt's halt solche Probleme, wie beschrieben.
Danke!
Aliobaba
das habe ich im Programm so gemacht. Aber wenn Windows10 unter verschiedenen Anwendungen verschiedene Namen für den selben Ordner liefert, dann gibt's halt solche Probleme, wie beschrieben.
Danke!
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: invalid filename
Wen sich der Programmierer ursprünglich daran gehalten hätte, würde es keine Probleme geben.das habe ich im Programm so gemacht. Aber wenn Windows10 unter verschiedenen Anwendungen verschiedene Namen für den selben Ordner liefert, dann gibt's halt solche Probleme, wie beschrieben.
Aber leider musste ich auch schon vielfach feststellen, das dies nicht der Fall ist.
Das hat man schon gut bei alten deutschen Windows-Versionen (Win95/98) gesehen. Normalerweise hat es dort einen Ordner "Programme" und auf einmal gibt es noch eine Programminstallation einen Ordner "Program Files".

Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 475
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: invalid filename
Hab es gerade mal ausprobiert. Für mich sieht es so aus als hätte dein Programm ein Problem mit Umlauten im Pfad(z.B. beim Usernamen).
Test 1: Unter C:\Tmp\ -> alles i.O
Test 2: Unter C:\Tmp\Töst\ -> Fehler
Test 3: Unter C:\Tmp\Te st\ -> alles i.O.
Ich denke auch nicht, dass es was mit Windows 10 und wie der Explorer die Verzeichnisse anzeigt zu tun hat. Schau mal ob du den Pfad zur Datei(mutmaßlich die Datenbank) irgendwie passend konvertiert bekommst(SysToUTF8 o.ä.).
Edit: In meinen Tools verwende ich um den Pfad zum Programm zu ermitteln.
Test 1: Unter C:\Tmp\ -> alles i.O
Test 2: Unter C:\Tmp\Töst\ -> Fehler
Test 3: Unter C:\Tmp\Te st\ -> alles i.O.
Ich denke auch nicht, dass es was mit Windows 10 und wie der Explorer die Verzeichnisse anzeigt zu tun hat. Schau mal ob du den Pfad zur Datei(mutmaßlich die Datenbank) irgendwie passend konvertiert bekommst(SysToUTF8 o.ä.).
Edit: In meinen Tools verwende ich
Code: Alles auswählen
ExtractFilePath(Paramstr(0))
mfg Ingo
-
- Beiträge: 6915
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: invalid filename
Umlaute und auch Leerzeichen verwende nach Möglichkeit nie in Datei/Verzeichnisnamen, mit solchen Zeichen ist Ärger vorprogrammiert. Als Leerzeichen verwende ich ein "_".Hab es gerade mal ausprobiert. Für mich sieht es so aus als hätte dein Programm ein Problem mit Umlauten im Pfad(z.B. beim Usernamen).
Mit anderen Worten alle Zeichen, die man bei einem Bezeichnernamen in Pascal verwenden, sind gute Namen für Ordner und Dateien.
Bei einem Word-Dokument geht so was, aber nur schon Project-Verzeichnisse von Lazarus mit Leerzeichen können Probleme verursachen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 475
- Registriert: Do 15. Nov 2007, 16:58
- OS, Lazarus, FPC: Win11/Ubuntu Budgie (L 3.0 FPC 3.2.2)
- CPU-Target: i386, x64
- Wohnort: Gera
Re: invalid filename
Das weiß er sicher, aber sein Programm ist "portable" und wenn der User "Klaus Müller" in seinem Downloadordner(C:\Users\Klaus Müller\Downloads) das Programm startet, hat er ein Problem...Mathias hat geschrieben: Umlaute und auch Leerzeichen verwende nach Möglichkeit nie in Datei/Verzeichnisnamen, mit solchen Zeichen ist Ärger vorprogrammiert.
mfg Ingo
Re: invalid filename
Genau dieser Befehl kommt in meinem Programm zur Anwendung, um den Pfad zum Programm zu erhalten.shokwave hat geschrieben: Edit: In meinen Tools verwende ichum den Pfad zum Programm zu ermitteln.Code: Alles auswählen
ExtractFilePath(Paramstr(0))
Auch "SysToUtf8" kommt oft zur Anwendung. Ob ich dies immer in letzter (korrekter) Konsequenz gemacht habe --> ??
Dies ist eine wirklich schwierige Materie, wie auch die vielen Threads zu diesem Thema in diesem forum deutlich zeigen.
Aliobaba
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
Re: invalid filename
Wenn du einen fpc vor Version 3.0 benutzt, musst du ParamStrUTF8 aus der Unit LazUTF8 nehmen, damit die Umlaute richtig erkannt werden. Ab fpc 3.0 ist das ok.
-
- Beiträge: 99
- Registriert: Do 23. Dez 2010, 19:10
- OS, Lazarus, FPC: Windows 10/11 32/64bit, L 3.2.0 32/64bit, FPC 3.2.2 32/64bit
Re: invalid filename
Hallo,
ich hatte ein ähnliches Problem gehabt und seit ich folgende Funktion anwende
ist das Problem nicht vorhanden.
Mein Programm ist auch portabel und läuft unter Win7/10.
Gruß
ich hatte ein ähnliches Problem gehabt und seit ich folgende Funktion anwende
Code: Alles auswählen
Einstellungsdatei := ExtractFilePath(Application.ExeName) + 'EINSTELLUNGEN.INI';
Mein Programm ist auch portabel und läuft unter Win7/10.
Gruß