home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pctchnqs / 1990 / number5 / valx.pas < prev    next >
Pascal/Delphi Source File  |  1990-09-21  |  1KB  |  56 lines

  1. UNIT ValX;
  2.  
  3. {  Author: George W. Seaton  FOR: Turbo Pascal 5.5 }
  4.  
  5. INTERFACE
  6.  
  7. PROCEDURE ValI(S: STRING; VAR V: Integer; VAR C: Integer);
  8. PROCEDURE ValB(S: STRING; VAR V: Byte; VAR C: Integer);
  9. PROCEDURE ValW(S: STRING; VAR V: Word; VAR C: Integer);
  10.  
  11. IMPLEMENTATION
  12.  
  13. VAR
  14.   Lint: LongInt;             {Used to range-check values}
  15.  
  16. PROCEDURE ValI(S: STRING; VAR V: Integer; VAR C: Integer);
  17.  
  18. CONST
  19.   MaxIV: LongInt =  32767;
  20.   MinIV: LongInt = -32768;
  21.  
  22. BEGIN
  23.   Val(S,Lint,C);
  24.   IF ((C = 0) AND (Lint >= MinIV) AND (Lint <= MaxIV)) THEN
  25.     V := Lint
  26.   ELSE C := -1;
  27. END;
  28.  
  29. PROCEDURE ValB(S: STRING; VAR V: Byte; VAR C: Integer);
  30.  
  31. CONST
  32.   MaxBV: LongInt =    255;
  33.   MinBV: LongInt =      0;
  34.  
  35. BEGIN
  36.   Val(S,Lint,C);
  37.   IF ((C = 0) AND (Lint >= MinBV) AND (Lint <= MaxBV)) THEN
  38.     V := Lint
  39.   ELSE C := -1;
  40. END;
  41.  
  42. PROCEDURE ValW(S: STRING; VAR V: Word; VAR C: Integer);
  43.  
  44. CONST
  45.   MaxWV: LongInt =  65535;
  46.   MinWV: LongInt =      0;
  47.  
  48. BEGIN
  49.   Val(S,Lint,C);
  50.   IF ((C = 0) AND (Lint >= MinWV) AND (Lint <= MaxWV)) THEN
  51.     V := Lint
  52.   ELSE C := -1;
  53. END;
  54.  
  55. END.
  56.