home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / ENV.ZIP / ENV.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1988-06-22  |  1.1 KB  |  54 lines

  1. Unit Env;
  2.  
  3. Interface
  4. Function Environment (ParamString : String) : String;
  5.  
  6. Implementation
  7.  
  8. Function Environment (ParamString : String) : String;
  9. VAR
  10.  EnvironmentSegment : Integer;
  11.  MemOffset : Integer;
  12.  Loc,
  13.  MemValue : Byte;
  14.  LeftSide,
  15.  RightSide : String;
  16.  NoMoreParams,
  17.  EqualSignFound : Boolean;
  18.  
  19. BEGIN
  20.   EnvironmentSegment := MemW[PrefixSeg:$002C];
  21.   NoMoreParams := False;
  22.   MemOffset := 0;
  23.  
  24. For Loc := 1 to Length(ParamString) DO
  25.   ParamString[Loc] := UpCase(ParamString[Loc]);
  26.  
  27. REPEAT
  28.   LeftSide[0] := #0;
  29.   RightSide[0] := #0;
  30.   EqualSignFound := False;
  31.  
  32.   MemValue := Mem[EnvironmentSegment:MemOffset];
  33.   Inc(MemOffset);
  34.   NoMoreParams := (Memvalue = 0);
  35.  
  36.   While (MemValue <> 0) DO
  37.     BEGIN
  38.       If (Chr(MemValue) = '=') THEN
  39.         EqualSignFound := True
  40.       ELSE
  41.         If EqualSignFound THEN
  42.           RightSide := RightSide + Chr(MemValue)
  43.         ELSE
  44.           LeftSide := LeftSide + Chr(MemValue);
  45.  
  46.       MemValue := Mem[EnvironmentSegment:MemOffset];
  47.       Inc(MemOffset);
  48.     END;
  49.   UNTIL ((LeftSide = ParamString) OR NoMoreParams);
  50.   Environment := RightSide;
  51. END;
  52. END.
  53.  
  54.