Buchstaben im Dateinamen finden....

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Then
Beiträge: 292
Registriert: 06.09.2004 13:26
Wohnort: Siegen

Buchstaben im Dateinamen finden....

Beitrag von Then »

Hi zusammen !

also ich habe tausende von Dateien auf der externen Platte und in dem ein oder anderen Dateinamen sind eben keine deutschen Buchstaben sondern sowas wie :

Ê
î
Ô
Û
â
ê
î
ô
û

eben Sonderzeichen. Nun lasse ich meine Festplatte durchsuchen und lasse per FindString im Dateinamen nach diesen Zeichen suchen. Dummerweise findet das Programm nicht das Ê sondern es findet ein ganz normales E. :freak:

Kann mir jemand helfen, wie man diese Zeichen genau identifiziert ??
PB 6.10LTs / Windows 11 64Bit 25H2

... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Buchstaben im Dateinamen finden....

Beitrag von RSBasic »

Da ich dein Code nicht sehen kann, habe ich einfach mal mit folgendem Code getestet:

Code: Alles auswählen

Directory$ = "D:\"   ; Listet alle Einträge im Windows-Verzeichnis auf (ohne die Inhalte aus Unterverzeichnissen)
If ExamineDirectory(0, Directory$, "*.*")  
  While NextDirectoryEntry(0)
    If DirectoryEntryType(0) = #PB_DirectoryEntry_File
      CurrentFileName$ = DirectoryEntryName(0)
      Debug CurrentFileName$
      If FindString(CurrentFileName$, "Ê")
        Debug "''Ê'' ist im Dateinamen vorhanden."
      Else
        Debug "Kein Ê gefunden."
      EndIf
      Debug "--------------"
    EndIf
  Wend
  FinishDirectory(0)
EndIf
Ausgabe:
TestETest.txt
Kein Ê gefunden.
--------------
TestÊTest.txt
''Ê'' ist im Dateinamen vorhanden.
--------------
WriteLines.txt
Kein Ê gefunden.
--------------
Oder meinst du was Anderes? Poste bitte mal deinen Code.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Then
Beiträge: 292
Registriert: 06.09.2004 13:26
Wohnort: Siegen

Re: Buchstaben im Dateinamen finden....

Beitrag von Then »

Danke, mein Code sieht ungefähr so aus, jedoch findet er angeblich die Bustaben in den Dateinamen, obwohl es ein normales E oder O ist...

Wenn ich alles Sonderzeichen in den Editor eingebe, macht er aus vielen ein nicht erkennbares Zeichen, liegts evtl daran ? Kopier mal die Sonderzeichen in den Editor :


ÂA

ÊE
îI
ÔO
ÛU
âa
êe
îi
ôo
ûu
ČC
čc
ĎD
ďd
ĚE
ěe
ĽL
ľI
ŇN
ňn
ŘR
řr
ŠS
šs
ŤT
ťt
ŽZ
žz
PB 6.10LTs / Windows 11 64Bit 25H2

... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Buchstaben im Dateinamen finden....

Beitrag von ts-soft »

Haste Deinen Source auch im UTF-8 Format erstellt? Compileroption Unicode wäre auch sinnvoll.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Buchstaben im Dateinamen finden....

Beitrag von RSBasic »

Naja, bei solchen Zeichen wäre Chr() besser, weil einige spezielle Zeichen im (reinen) Editor nicht erkannt werden. Ansonsten hilft UTF-8
Entweder Chr() nutzen oder du erstellst am besten eine RegEx-Anweisung, womit du überprüfen kannst, ob im Dateiname die folgenden Zeichen vorhanden sind: a-z, A-Z, 0-9 und zusätzlich einige Sonderzeichen. Dann brauchst du nicht nach allen Sonderzeichen zu suchen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
kunstlust
Beiträge: 259
Registriert: 12.04.2012 23:47
Wohnort: Hannover
Kontaktdaten:

Buchstaben im Dateinamen finden....

Beitrag von kunstlust »

Was für eine Dateisystem kommt zum Einsatz? http://blog.tausys.de/2012/05/03/falsch ... rrigieren/
Antworten