CopyFile mit Umlauten

Anfängerfragen zum Programmieren mit PureBasic.
BasicKlaus
Beiträge: 5
Registriert: 29.02.2016 13:23

CopyFile mit Umlauten

Beitrag 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!
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: CopyFile mit Umlauten

Beitrag 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?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
BasicKlaus
Beiträge: 5
Registriert: 29.02.2016 13:23

Re: CopyFile mit Umlauten

Beitrag 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
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: CopyFile mit Umlauten

Beitrag von GPI »

Bei sowas tipp ich immer auf die Codierungseinstellung von PB (file>file format). Wenns nicht auf utf8 steht, kann sowas imo auftreten.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: CopyFile mit Umlauten

Beitrag 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.
BasicKlaus
Beiträge: 5
Registriert: 29.02.2016 13:23

Re: CopyFile mit Umlauten

Beitrag 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 :?
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: CopyFile mit Umlauten

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten