Hashliste Demo
Samstag, den 10. Oktober 2009 um 01:09 Uhr
Eine Hashliste, basierend auf Variablennamen. Bisher ohne sinnvolle Anwendung, und der Frage nach dem Erzeugen. Aber WENN man eine Datei mit Inhalt wie in dem Beispiel hat, kann man darauf schneller zugreifen.
Bzw ohne Hashwerte kann man daraus auch ein praktisches Array machen.



@echo off
setlocal enabledelayedexpansion

REM --------------- HASHLIST -----------------

REM Beispielliste
set hash="a0009;IST" "a0008;HAUS VOM NIKOLAUS" "a0007;C" "a1001;DAS" "a9999;XX"

for %%i in (!hash!) DO (
REM echo %%i

set tmp=%%i
set tmp=!tmp:~1,-1!

for /f "tokens=1,2 delims=;" %%a in ("!tmp!") do (

echo HASH:%%a WERT:%%b

set aa=%%a
set bb=%%b

set !aa!=%%b
echo -----
)
)


REM einzelnen Wert einladen
set hashval=a123456
set val=MYVALUE

REM Trick-der hash ist lang und eindeutig, also machen wir eine variable daraus.
set !hashval!=!val!


REM Abfragen der Werte

REM einfach, mit fixem hash, kommt wohl so nie vor
set result=!a1001!
echo !result!

REM tricky case
set sss=a0009
REM werte !sss! aus zu dem hash
REM in der subfunc wird dann wiederum !hash! zu dem wert der Variablen ausgewertet
call :subfunc MEINWERT !sss!
echo !MEINWERT!

set sss=a123456
call :subfunc MEINEVAR123 !sss!
echo !MEINEVAR123!

pause
goto :eof


REM Ohne diese Funktion sehe ich im Moment keine Möglichkeit die Werte abzufragen.
REM man müsste so etwas wie echo !!hash!! schreiben, also zunächst
REM !hash! auflösen nach a1991 und dann !a1991! auflösen nach WERT
REM mit dieser subfunc gehts...

:subfunc
set %1=!%2!
goto :eof