Code:
' ' Unit.............ENVREPL1.PBL ' Zweck............Ersetzung von Umgebungsvariablennamen in Strings, die ' durch zwei %-Zeichen eingegrenzt sind, durch den Variablen- ' inhalt. Die Variablen können nicht geschachtelt werden. ' Standardisierte Variante der verstreut benutzten Funktion ' ENVREPLACE. ' Version..........1.00 ' Stand............30.05.95 ' Sprache..........PowerBASIC 3.x ' Autor............M.Hoffmann ' '=============================================================================== ' COMPILEROPTIONEN '=============================================================================== $COM 0 $COMPILE UNIT $CPU 80386 $DEBUG MAP- $ERROR BOUNDS-,NUMERIC-,OVERFLOW-,PARAM-,STACK- $FLOAT EMULATE $LIB COM-,LPT-,GRAPH-,CGA-,EGA-,VGA-,FULLFLOAT-,IPRINT- $OPTION AUTODIM-,CNTLBREAK- $SOUND 0 $STACK &H600 $STRING 1 DEFINT A-Z %Version = 100 '=============================================================================== ' UNITGLOBALS UND DEKLARATIONEN '=============================================================================== '=============================================================================== ' PROZEDUREN UND FUNKTIONEN '=============================================================================== FUNCTION EnvReplace (Arg AS STRING) LOCAL PUBLIC AS STRING DIM Tmp AS LOCAL STRING ' Temporärer Ergebnispuffer DIM Lefts AS LOCAL INTEGER ' linkes (erstes) Separatorzeichen DIM Rights AS LOCAL INTEGER ' rechtes (zweites) Separatorzeichen Tmp = Arg Lefts = INSTR(Tmp,"%") Rights = INSTR(Lefts+1,Tmp,"%") DO WHILE Lefts > 0 AND Rights > Lefts Tmp = LEFT$(Tmp,Lefts-1)+_ ENVIRON$(UCASE$(MID$(Tmp,Lefts+1,Rights-Lefts-1)))+_ MID$(Tmp,Rights+1) Lefts = INSTR(Tmp,"%") Rights = INSTR(Lefts+1,Tmp,"%") LOOP EnvReplace = Tmp END FUNCTION