Announcement

Collapse
No announcement yet.

PB/DOS - Replacing %envvars% in strings

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • PB/DOS - Replacing %envvars% in strings

    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
    ------------------
Working...
X