Ordner lassen sich teilweise nicht öffnen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Rallimen

Sieger des 30-EUR-Wettbewerbs

Betreff: Ordner lassen sich teilweise nicht öffnen

BeitragDo, Jan 26, 2017 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

einige Ordner mit Sonderzeichen lassen sich nicht öffnen!
Beispiel:
Der Ordner hat den Namen "gr�ssten Erfolge"
BB liest ihn aber so "gr?ssten Erfolge",
das führt dazu das der Ordner nicht geöffnet werden kann.

Das gleiche ist bei Dateien...

so sieht die Funktion aus....
(BBPlus)
BlitzBasic: [AUSKLAPPEN]
Function Streams_einlesen(Pfad$)

If Right(Pfad,1) <> "\" Then Pfad=Pfad+"\"
Ordner% = ReadDir (Pfad$ )

If Ordner% = 0 Then EintragInsLogbuch ("Bug.txt",Pfad$) :Notify "Kann Ordner nicht öffnen " + Pfad$ : Return
Repeat
Dateiname$ = NextFile (Ordner%)



Wie kann ich das möglich machen....?
[BB2D | BB3D | BB+]

Spark Fountain

BeitragFr, Jan 27, 2017 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt an den verschiedenen Encodings, die die Betriebssystem-Oberfläche bzw. BlitzBasic verwenden. Am besten ist es, einfach auf Sonderzeichen bei Datei- und Ordnernamen zu verzichten und nur Standard-Buchstaben des englischen Alphabets zu benutzen.

Ich weiß grad auch nicht, welches Encoding BlitzBasic standardmäßig verändert bzw. ob man es per Befehl oder Library umstellen kann.
Gewinner der MiniBCC's #11, #13 und #28

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Jan 27, 2017 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs erst mal ander gelöst Very Happy Very Happy Very Happy Very Happy
Code: [AUSKLAPPEN]
   If Ordner% = 0 Then
      EintragInsLogbuch ("Logdatei Ordner,txt",CurrentDate()+" "+pfad)
      Notify "Dieser Ordner enhält ungültige Zeichen und kann nicht verarbeitet werden! Der Ordnername wird zusätzlich in der (Logdatei Ordner,txt] abgespeichern "  + Pfad$ : Return
   EndIf
[BB2D | BB3D | BB+]

Thunder

BeitragSa, Jan 28, 2017 10:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du nicht den übergeordneten Ordner mit ReadDir öffnen und alle Ordner und Dateien durchgehen?
Dann kannst du bei dem Ordner mit den Sonderzeichen mit Asc genau nachschauen, aus welchen Bytes dieses Sonderzeichen besteht.
OpenSource FTW! aber seid gewarnt: OS-Projekte als GPL zu lizenzieren ist eine Sünde
Meine Sachen: https://github.com/chtisgit

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Jan 28, 2017 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs getestet... aber es geht nicht ....

Sonderzeichen werden einfach mit Fragezeichen ersetzt!
ASC(Sonderzeichen) ergibt 63
BlitzBasic: [AUSKLAPPEN]
A$= RequestDir ()

Repeat
pos = pos +1
Write Mid(a,pos,1)+ ": "
Print Asc(Mid(a,pos,1))
Until Pos= Len(a)
Stop
[BB2D | BB3D | BB+]

Thunder

BeitragSo, Jan 29, 2017 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh schade.. dann kommt man vermutlich um die Unicode WinAPI Funktionen nicht herum
OpenSource FTW! aber seid gewarnt: OS-Projekte als GPL zu lizenzieren ist eine Sünde
Meine Sachen: https://github.com/chtisgit

Pebender

BeitragMo, Jan 30, 2017 7:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wie jemand oben schon beschrieben hat, ist es am simpelsten, wenn du die Ordner umbenennst.
Wenn du die Sonderzeichen mit ASC bestimmen kannst, wäre es doch im Umkehrschluss so, das du sie auch
mit CHR wieder geben könntest.

das du aus "Grössten Erfolge" es so probierst "Gr"+CHR(63)"ssten Erfolge", müsstest halt alles auf Sonderzeichen testen, und dementsprechend anpassen, falls es so funktioniert, wie ich es geschrieben habe(nicht getestet).

mfg
BMax & MaxGUI

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Jan 30, 2017 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles in dieser Richtung probiert aber BB macht nur ein Byte (and $FF) pro Zeichen und ersetzt diese einfach mit ?
Aber das Zeichen lautet ;&#65533 ($FFFD)
Ist jetzt auch ertmal kein grosses Problem, kommt nicht so oft vor.
(betrifft bis jetzt nur heruntergeladene Files(teilweise ))

Trotzdem Danke!
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group