home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 02 / titel / lib.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-11-26  |  1.4 KB  |  46 lines

  1. (* ------------------------------------------------------- *)
  2. (*     Hex-in-ASCII-Wandler für Turbo Pascal 4.0 - 5.5     *)
  3. (*       Listing 4: Unit für modulare Programmierung       *)
  4. (*    Die Unit enthält die Hilfsroutinen zur Hex-ASCII-    *)
  5. (*          Konvertierung und zum Fehlerexit               *)
  6. (*                                                         *)
  7. (*             (c) 1991 G. Born & TOOLBOX                  *)
  8. (* ------------------------------------------------------- *)
  9. UNIT LIB;
  10.  
  11. INTERFACE
  12.  
  13. TYPE
  14.   LongStr = STRING [80];
  15.  
  16.   PROCEDURE Error(text : LongStr);
  17.   FUNCTION  asc_hex(text : LongStr) : BYTE;
  18.  
  19. IMPLEMENTATION
  20.  
  21.   PROCEDURE Error(text : LongStr);
  22.   BEGIN
  23.     WriteLn('Fehler: falsche Hexzahl ', text);
  24.     Halt($FF);
  25.   END; (* Error *)
  26.  
  27.   FUNCTION asc_hex(text : LongStr) : BYTE;
  28.   VAR
  29.     i, tmp : INTEGER;
  30.     zchn   : CHAR;
  31.     wert   : WORD;
  32.   BEGIN
  33.     wert := 0;                           (* init Wert     *)
  34.     FOR i := 1 TO Length(text) DO BEGIN  (* alle Ziffern  *)
  35.       zchn := UpCase(text[i]);           (* hole Ziffer   *)
  36.       tmp  := Pos (zchn,'0123456789ABCDEF');
  37.                                          (* decodiere     *)
  38.       IF tmp = 0 THEN                    (* Fehler ?      *)
  39.         Error(text);
  40.       wert := wert * 16 + (tmp - 1);   (* addiere Ziffer  *)
  41.     END; (* FOR *)
  42.     asc_hex := Lo(wert);               (* Ergebnis zurück *)
  43.   END;  (* asc_hex *)
  44.  
  45. END.
  46.