home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 13 / sonstige / environ.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-10-06  |  2.3 KB  |  91 lines

  1. (* ------------------------------------------------------ *)
  2. (*                  ENVIRON.PAS                           *)
  3. (*    Unit zur Verwndung von Environment-Variablen        *)
  4. (*               unter Turbo Pascal 4.0                   *)
  5. (*        (c) 1989 by Uli Kobabe und TOOLBOX              *)
  6. (* ------------------------------------------------------ *)
  7.  
  8. UNIT Environ;
  9.  
  10. INTERFACE
  11.  
  12. FUNCTION LeseEnviron: STRING;
  13. (* liest den Environment-String aus dem PSP               *)
  14.  
  15. FUNCTION EnvVar(Variable: STRING): STRING;
  16. (* übergibt den im DOS-Environment gespeicherten String   *)
  17. (* einer als Argument übergebenen Variablen               *)
  18.  
  19. (* ------------------------------------------------------ *)
  20.  
  21. IMPLEMENTATION
  22.  
  23. VAR Zeichen: CHAR;
  24.           i: WORD;
  25.  
  26. FUNCTION LeseEnviron: String;
  27.  
  28. VAR EString: STRING;
  29.     Adresse: WORD;
  30.     Ende,
  31.     Marke  : STRING[2];
  32.  
  33. BEGIN
  34.   Adresse := MemW[PrefixSeg:$002C];    (* Staradresse PSP *)
  35.   EString := '';
  36.   Ende := Chr(0) + Chr(0);   (* Endmarkierung Env.-String *)
  37.   i := 0;
  38.   Marke := Ende;
  39.   REPEAT
  40.     Zeichen := Chr(Mem[Adresse:i]);
  41.     i := i + 1;
  42.     Marke[1] := Marke[2];
  43.     Marke[2] := Zeichen;
  44.     EString  := EString + Zeichen;
  45.   UNTIL Marke = Ende;
  46.   LeseEnviron := EString;
  47. END;
  48.  
  49. (* ------------------------------------------------------ *)
  50.  
  51. FUNCTION EnvVar(Variable: STRING): STRING;
  52.  
  53. VAR Temp    : STRING;
  54.     gefunden: BOOLEAN;
  55.     EString : STRING;
  56.  
  57. BEGIN
  58.   EString := LeseEnviron;
  59.   FOR i := 1 TO Length(Variable) DO
  60.     Variable[i] := UpCase(Variable[i]);
  61.   i := 1;
  62.   gefunden := FALSE;
  63.   Temp := '';
  64.   WHILE (NOT gefunden) AND (i < Length(EString)) DO BEGIN
  65.     Zeichen := EString[i];
  66.     IF Zeichen = Chr(0) THEN
  67.       Temp := ''
  68.     ELSE BEGIN
  69.       Temp := Temp + Zeichen;
  70.       IF Temp = Variable THEN gefunden := TRUE;
  71.     END;
  72.     i := i + 1;
  73.   END;
  74.   IF gefunden THEN BEGIN
  75.     Temp := '';
  76.     Zeichen := EString[i];
  77.     i := i + 1;
  78.     WHILE Zeichen <> Chr(0) DO BEGIN
  79.       Zeichen := EString[i];
  80.       IF Zeichen <> Chr(0) THEN Temp := Temp + Zeichen;
  81.       i := i + 1;
  82.     END;
  83.     EnvVar := Temp;
  84.   END ELSE EnvVar := '';
  85. END;
  86.  
  87. END.
  88.  
  89. (* ------------------------------------------------------ *)
  90. (*              Ende von ENVIRON.PAS                      *)
  91.