Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DOS/AscII-Code für €-Zeichen (https://www.delphipraxis.net/199108-dos-ascii-code-fuer-%80-zeichen.html)

kwhk 24. Dez 2018 10:23

DOS/AscII-Code für €-Zeichen
 
Ich benutze für ein Verzeichnis meiner Dateien gern den DIR-Befehl: z.B. dir X:\*.mp4 /S>xMP4.txt
Alle Musik-Titel, Videos usw. stehen in Ordnern, deren Inhalt ich mittels DIR-Befehl in einer Datei speichere.
Die Dateinamen werden dabei im DOS-AsciII-Code (8-bit) gespeichert, genau so, wie zu DOS-Zeiten schon.
Mit einem kleinen Programm, wandle ich diejenigen Sonderzeichen derart um, dass ich sie mit einem normalen Text-Editor lesen und in der Datei suchen kann. Dabei ist mir aufgefallen, dass das DIR-Kommando ein €-Zeichen immer als Hex-3F darstellt. Das 3F-Zeichen ist aber normalerweise der Code für ein ?-Zeichen (Fragezeichen). Es könnte ja sein, dass der DIR-Programmierer sich gesagt hat, ein ? darf im Dateinamen nicht stehen, weil es ein Joker-Zeichen ist. Da kann ich 3F für das neue gültige €-Zeichen nehmen, das es ja nun bereits seit beinahe 20 Jahren auch auf jeder Tastatur gibt.

Das €-Zeichen hat normalerweise den Code 0x20AC (dezimal 8364), im Dateinamen der Directorys gibt es für ein Zeichen aber nur ein Byte, da kann man 0x20AC nicht unterbringen.

Hier ein Beispiel, wie es aussieht, wenn man den Namen aus der DIR-Datei anschaut, leider wird das €-Zeichen nur als #8364 angezeigt, deshalb schreibe ich stattdessen ein E.
Code:
8E 99 9A 3F 84 94 81 E1  2E 3F FD FC 0D 0A
Ä  Ö  Ü  E  ä  ö  ü  ß   .  E  ²  ³  CR LF

So sieht es in der Dir-Datei selbst aus

Datenträger in Laufwerk G: ist Sea_G_2000
Volumeseriennummer: 72D4-C2CC

Verzeichnis von G:\u\3

24.12.2018 10:58 <DIR> .
24.12.2018 10:58 <DIR> ..
24.12.2018 10:55 433 ÄÖÜ?äöüß.?²³
1 Datei(en), 433 Bytes


Die angezeigten ? sind aber tatsächlich €-Zeichen: ÄÖÜ€äöüß.€²³
Sicherlich wird man nicht so häufig ein €-Zeichen im Dateinamen finden, es ist aber ein zuläßßiges Zeichen, wie sicherlich viele andere aus dem UDF-8-Bereich auch.

Der schöne Günther 24. Dez 2018 10:36

AW: DOS/AscII-Code für €-Zeichen
 
cmd mit Parameter /u starten

kwhk 24. Dez 2018 12:05

AW: DOS/AscII-Code für €-Zeichen
 
Ok, da bekommt man das DIR-Listing im 16-bit-Code. Danke für den Hinweis.
Wie ist das aber Delphi-intern, wenn man z.B. eine Datei mit einem €-Zeichen im Dateinamen öffnen möchte oder das Directory ausliest ?
Das muss ich mal probieren.

Der schöne Günther 24. Dez 2018 12:24

AW: DOS/AscII-Code für €-Zeichen
 
Delphi ist das relativ egal. Auch wenn die Datei oder der Ordner (ノ͡° ͜ʖ ͡°)ノ︵┻┻ heißt

Redeemer 24. Dez 2018 12:34

AW: DOS/AscII-Code für €-Zeichen
 
Einem Tisch hingegen ist das nicht egal. Auch Tische haben Gefühle.

Der schöne Günther 24. Dez 2018 12:42

AW: DOS/AscII-Code für €-Zeichen
 
Alles klar, ich stelle ihn wieder hin


┬━┬ ノ( ゜-゜ノ)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz