Seite 1 von 1

CopyFile mit Umlauten

Verfasst: 05.10.2017 11:29
von BasicKlaus
Hallo,
es sollte nur ein ganz kleines Tool werden, auf dem schmerzhaften Weg habe ich nun herausgefunden, dass CopyFile und RenameFile nicht mit Umlauten zurechtkommen.
Was ist denn dazu erforderlich? Einstellungen? Dateiname konvertieren oder die Zeichen maskieren?

Danke!

Re: CopyFile mit Umlauten

Verfasst: 05.10.2017 11:35
von RSBasic
Das kann ich grundsätzlich nicht bestätigen. CopyFile, RenameFile u.ä. kommen mit Umlauten klar. Wenn es spezielle Zeichen aus einer anderen Sprache sind, musst du unbedingt Unicode benutzen, falls du eine ältere PB-Version verwendest.

Welches Betriebssystem und welche PB-Version benutzt du? Was für Zeichen sind es genau? Hast du den Character-Wert dieser Zeichen ermittelt? Hast du es auch mit einem einfachen, kleinen Beispielcode, der nur deine gewünschte Datei kopiert, getestet? Damit kannst du ausschließen, dass der Fehler doch woanders liegt.
Und stammt die Datei aus dem Internet oder von einem anderen Betriebssystem bzw. Dateisystem? Wurde die Datei per FTP heruntergeladen? Hast du auch mal mit anderen Dateien getestet?

Re: CopyFile mit Umlauten

Verfasst: 09.10.2017 09:14
von BasicKlaus
Hi RSBasic,
danke für die Rückmeldung. Mir stand der Rechner am Wochenende nicht zur Verfügung.
Das Problem betraf CopyFile, RenameFile usw. Eine Datei mit einem ß konnte ich nicht Kopieren oder umbenennen. Erkannt und gelesen wurde sie korrekt.
Sie lag auf dem Desktop, WIN10 1703, 64bit. Purebasic 5.61 64 bit.
Die betroffenen Dateien wurde von jemand anderem erstellt und ursprünglich aus Netzfreigaben eines Servers in einer Windows Domäne geholt und auf Endgeräte kopiert.
Ich hatte auch keine Einschränkungen auf den Dateien gefunden. Gleichzeitig war Python in der Lage, die Operationen auszuführen...

Die Funktion habe ich schließlich zum Laufen gebracht durch Ersetzen des ß im Ausdruck durch den Charactercode:
... Skript Schlo" + Chr(223) + ".vbs"

Heute früh ist der Fehler nicht reproduzierbar! Der PC wurde zwischenzeitlich nicht neu gestartet, auch WIN10 hat laut Updateliste nichts "gemacht".
Sorry für den Fehlalarm, legen wir es mal ab und danke für die Hilfe. Mal sehen ob es nun durchgängig zuverlässig läuft. Ich muss das "Programm" in Kürze verteilen.

Klaus

Re: CopyFile mit Umlauten

Verfasst: 09.10.2017 11:24
von GPI
Bei sowas tipp ich immer auf die Codierungseinstellung von PB (file>file format). Wenns nicht auf utf8 steht, kann sowas imo auftreten.

Re: CopyFile mit Umlauten

Verfasst: 09.10.2017 18:13
von Nino
GPI hat geschrieben:Bei sowas tipp ich immer auf die Codierungseinstellung von PB (file>file format). Wenns nicht auf utf8 steht, kann sowas imo auftreten.
Wollte ich auch gerade sagen. :D

Zumal
BasicKlaus hat geschrieben:Die Funktion habe ich schließlich zum Laufen gebracht durch Ersetzen des ß im Ausdruck durch den Charactercode:
... Skript Schlo" + Chr(223) + ".vbs"
Außerdem sollte man eine Unicode-EXE erzeugen -- aber das ist ja mit PB 5.50+ immer automatisch gegeben.

Re: CopyFile mit Umlauten

Verfasst: 10.10.2017 15:21
von BasicKlaus
Hallo, danke - die Tipps habe ich alle überprüft. Es lag nicht einmal an den Umlauten. Vielleicht ist meine Maschine vermurkst...ich habe auch ältere PureBasic Versionen ausprobiert.

Ich kann den Fehler zur Zeit nicht finden. Je mehr ich am Code geschraubt habe, desto wahrscheinlicher wurde es, dass es plötzlich nicht funktioniert.
Ich habe einfach angefangen - den Code aufgebaut und plötzlich liefen diese Vorgänge nicht mehr.
Ich habe die Stellen dann wieder zum Test total reduziert, und es lief trotzdem nicht; nicht einmal so eine Zeile:

Code: Alles auswählen

ThisResult = RenameFile(MyDesktopDir$ + "Netzlaufwerke.vbs", MyDesktopDir$ + "Netzlaufwerke.vbs.ALT")
Wenn ich mal Zeit habe, probiere ich das ohne Win Defender und ohne Malwarebytes... AVIRA ist schon abgeschaltet. Muss es jetzt anders regeln.

Klaus :?

Re: CopyFile mit Umlauten

Verfasst: 10.10.2017 16:24
von RSBasic
BasicKlaus hat geschrieben:Wenn ich mal Zeit habe, probiere ich das ohne Win Defender und ohne Malwarebytes... AVIRA ist schon abgeschaltet. Muss es jetzt anders regeln.?
Das wäre meine nächste Vermutung. Mal komplett abschalten und erneut testen. Wenn es daran liegt, dann eine Ausnahmeregel hinzufügen.
Wenn es nicht daran liegt, dann überprüfen, von welchem Prozess die Dateien exklusiv gesperrt sind. Du kannst mal versuchen, diese Dateien umzubenennen. Falls die Umbenennung fehlschlägt, dann kannst du LockHunter benutzen, um den verwendeten Prozess zu ermitteln.