daffman
Goto Top

Wort in einzlene Variable zerlegen

Ich habe eine kurze Frage zur Zerlegung eines Wortes / Satzes in kleine Variablenstücke ohne ein bestimmtes Trennzeichen.

Hallo liebe Leute!

Also meine Frage ist:
Ist es möglich mit hilfe einer BATCH-Datei zum Beispiel das Wort "Hausmann" in die Variablen

a1=H
a2=a
a3=u
a4=s
a5=m
a6=a
a7=n
a8=n

Mit freundlichen Grüßen
Alexander

Content-Key: 157581

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

Ausgedruckt am: 29.03.2024 um 02:03 Uhr

Mitglied: bastla
bastla 26.12.2010 um 22:36:55 Uhr
Goto Top
Hallo Daffman!

Ist es - allerdings stellt sich die Frage, was in weiterer Folge mit den Variablen passieren soll (da zumeist die unmittelbare Weiterverarbeitung innerhalb einer Schleife sinnvoller ist) ...

Ansonsten ginge das etwa so:
@echo off & setlocal
set "Wort=Hausmann"  

set /a Index=0
:Loop
call set "Zeichen=%%Wort:~%Index%,1%%"  
if "%Zeichen%"=="" goto :Done  
set /a Index+=1
set "a%Index%=%Zeichen%"  
goto :Loop

:Done
echo %Index%
set a
Grüße
bastla
Mitglied: Daffman
Daffman 26.12.2010 um 22:45:43 Uhr
Goto Top
Das lässt mich schon aufhorchen. Ich würde dann die Zeichen gerne in andere Zeichenkombinationen umwandeln, dass zb dass das M ein C wird

lg alex
Mitglied: bastla
bastla 26.12.2010 um 23:12:27 Uhr
Goto Top
Hallo Daffman!
in andere Zeichenkombinationen umwandeln, dass zb dass das M ein C wird
Das könnte dann nach dem folgenden Schema (die Zuordnungstabelle ist derzeit auf die tatsächlich verwendeten Zeichen beschränkt) ablaufen:
@echo off & setlocal
set "Wort=Hausmann"  

REM H=B
REM a=l
REM u=a
REM s=t
REM m=k
REM n=e
REM usw.

set /a Index=0
set "Neu="  
:Loop
call set "Zeichen=%%Wort:~%Index%,1%%"  
if "%Zeichen%"=="" goto :Done  
for /f "tokens=3 delims== " %%i in ('findstr /b /c:"REM %Zeichen%" "%~f0"') do set "Neu=%Neu%%%i"  
set /a Index+=1
goto :Loop

:Done
echo %Wort% -^> %Neu%
Grüße
bastla

P.S.: Batch ist nicht sonderlich gut für die Stringverarbeitung geeignet - zB VBS würde sich viel eher dafür anbieten ...