String Zeichenpaare auslesen und bearbeiten
Moin,
ich möchte gerne einen String der Form "41004800", der beliebig lang sein kann, in Zeichenpaare aufteilen, also in 41, 00, 48, 00, ... usw.
Wie mache ich das am geschicktesten?
Neugierige Grüße,
Andreas
ich möchte gerne einen String der Form "41004800", der beliebig lang sein kann, in Zeichenpaare aufteilen, also in 41, 00, 48, 00, ... usw.
Wie mache ich das am geschicktesten?
Neugierige Grüße,
Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 331011
Url: https://administrator.de/forum/string-zeichenpaare-auslesen-und-bearbeiten-331011.html
Ausgedruckt am: 23.12.2024 um 10:12 Uhr
6 Kommentare
Neuester Kommentar
Mit Regular Expressions, z.B.
Gruß
[regex]::matches("112233445566",'.{,2}').Captures | %{$_.Value}
Gruß
Für reines Batch benutze die :strLen Funktion http://www.dostips.com/DtTipsStringOperations.php#Function.strLen
Damit ermittelst du die Länge des Strings. Dann baust du mit dieser Info eine for /L Schleife bei der du jeweils ein Zeichen überspringst und mit den Standard-String-Funktionen anhand der Position extrahierst
http://www.dostips.com/DtTipsStringOperations.php#Snippets.MidString
p.s. Obiges Powershell kannst du problemlos auch in der Batch verwenden
Damit ermittelst du die Länge des Strings. Dann baust du mit dieser Info eine for /L Schleife bei der du jeweils ein Zeichen überspringst und mit den Standard-String-Funktionen anhand der Position extrahierst
http://www.dostips.com/DtTipsStringOperations.php#Snippets.MidString
p.s. Obiges Powershell kannst du problemlos auch in der Batch verwenden
Mir ist da gerade was eingefallen ...
Viel Spaß.
@echo off
:: HEX String in Datei schreiben
>"out.txt" echo 41004800
:: in Bytes decodieren und in Datei schreiben
>nul certutil -f -decodehex "out.txt" "tmp.txt"
:: Codepage auf Windows-1252 ändern
>nul chcp 1252
:: Byte Order Mark schreiben
<nul >"out.txt" set /p "=ÿþ"
:: decodierte Zeichenfolge anhängen
>nul copy /b "out.txt" /b + "tmp.txt" /b
:: temporäre Datei löschen
del "tmp.txt"
:: die UTF-16 codierte Zeichenfolge mit TYPE zu Windows-1252 konvertieren und ausgeben
type "out.txt"
echo(
pause