juergenl
Goto Top

In Batch-Programmen ASCII-Zeichen numerisch beschreiben ?

Zeichenvorrat numerisch beschreiben ...

Hallo Freunde,

ich würde mir gerne eine genaue Übersicht über alle Zeichen verschaffen, die auf meinen Workstations unter dort gegebenen Voraussetzungen (WIN XP. ggf. auch Hardware wie Grafikkarte pp) dargetellt werden können. Landläufige "ASCII-Tabellen", die ich vorgefunden habe, sind im oberen Bereich nämlich gelegentlich lückenhaft oder unzutreffend.

Dazu wüßte ich gerne, ob man Zeichen mit Hilfe eines Batch-Shell auch numerisch - damit meine ich in Form ihrer ASCII-Entsprechnung - darstellen kann. (etwa als Wertepaare wie z.B. [145; æ] oder [64; @]

Dies geht zwar mit einigen Anwender-, insbesondere Text-Programmen. Aber dabei weiß man ja nicht, auf welche Algortihmen diese Programme zurückgreifen. Ich hätte das Ganze lieber "DOS-nahe".

Im Voraus besten Dank und freundliche Grüße

Jürgen

Content-ID: 32677

Url: https://administrator.de/contentid/32677

Ausgedruckt am: 13.11.2024 um 11:11 Uhr

maneich
maneich 17.05.2006 um 14:19:52 Uhr
Goto Top
Hallo,

DOS-Nähe hast Du unter WinXP sicher nicht.

Zwar bietet die CMD.EXE (ab W2K) erheblich mehr als die Command.com unter Win9x-Systemen, aber die Umwandlung der Zeichen in die entsprechenden Code-Nummern oder umgekehrt, ist hier auch nicht vorgesehen.

Möglicherweise gibt es externe Software die das macht.

Aber mit WinXP hast Du ja auch den WindowsScriptHost instaliert. Hier findest du die Datei Script56.chm in der der komplette Ansii-Zeichsatz enthalten ist und mit einem kleinen Script kannst Du auch in Erfahrung bringen welche Zeichen unter WinXP dargestellt werden können bzw. welche Code-Nummer welches Zeichen darstellt.

Mit Asc("zeichen") wird die Code-Nummer geliefert und mit Chr(nr) wird das entsprechende Zeichen geliefert.

Du könntest z.B. mit

Name.vbs
snip

For i = 0 To 255
s = s & vbCrLf & "Code-Nr: " & i & "= Zeichen: " & Chr(i)
Next
WScript.Echo s
WScript.Quit
snap

auflisten und anzeigen lassen.

Du kannst das als "WScript.exe Name.vbs" interaktiv oder als "CScript.exe Name.vbs" in der Eingabeausforderung laufen lassen. Als Cscript werden Dir die Daten dann auch in der CMD-Box angezeigt.

Du kannst das ganze natürlich auch speichern.

snip
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile("%temp%\Zeichencode.txt", 2, True)

For i = 0 To 255
f.WriteLine "Code-Nr: " & i & "= Zeichen: " & Chr(i)
Next

f.Close
WScript.Quit
snap

MfG maneich
Juergenl
Juergenl 19.05.2006 um 11:54:19 Uhr
Goto Top
Hallo maneich,

danke für Deinen Rat: Ganz wichtig war für mich zunächst die Aussage, daß 'CMD.EXE' eine solche Zeichen-Notation nicht hergibt. (Meine Bemerkung "DOS-nahe" war in der Tat nicht zutreffend!)

Mit Deinem Vorschlag, die Aufgabe per VB-Script zu lösen, kommt man der Sache sicher am nächsten. Diesen Umgang muß ich aber erst üben: Deine beiden Clips konnte ich - nach entsprechenden Vorbereitungen (Script Host usw.) - leider also noch nicht zum Funktionieren überreden ...

Ganz ähnlich habe ich meine Aufgabe inzwischen aber mittels eines Scripts einer Datenbank gelöst, die unmittelbar unter Windows arbeitet, mit Sicherheit auch nicht auf eigene / undurchsichtige Zeichen-Konventionen zurückgreift: Zwei geschachtelte While-Schleifen liefern damit eine übersichtliche Tabelle über den Zeichenvorrat.

Danke noch einmal und beste Grüße

Jürgen