home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------- *)
- (* Hex-in-ASCII-Wandler für Turbo Pascal 4.0 - 5.5 *)
- (* Listing 4: Unit für modulare Programmierung *)
- (* Die Unit enthält die Hilfsroutinen zur Hex-ASCII- *)
- (* Konvertierung und zum Fehlerexit *)
- (* *)
- (* (c) 1991 G. Born & TOOLBOX *)
- (* ------------------------------------------------------- *)
- UNIT LIB;
-
- INTERFACE
-
- TYPE
- LongStr = STRING [80];
-
- PROCEDURE Error(text : LongStr);
- FUNCTION asc_hex(text : LongStr) : BYTE;
-
- IMPLEMENTATION
-
- PROCEDURE Error(text : LongStr);
- BEGIN
- WriteLn('Fehler: falsche Hexzahl ', text);
- Halt($FF);
- END; (* Error *)
-
- FUNCTION asc_hex(text : LongStr) : BYTE;
- VAR
- i, tmp : INTEGER;
- zchn : CHAR;
- wert : WORD;
- BEGIN
- wert := 0; (* init Wert *)
- FOR i := 1 TO Length(text) DO BEGIN (* alle Ziffern *)
- zchn := UpCase(text[i]); (* hole Ziffer *)
- tmp := Pos (zchn,'0123456789ABCDEF');
- (* decodiere *)
- IF tmp = 0 THEN (* Fehler ? *)
- Error(text);
- wert := wert * 16 + (tmp - 1); (* addiere Ziffer *)
- END; (* FOR *)
- asc_hex := Lo(wert); (* Ergebnis zurück *)
- END; (* asc_hex *)
-
- END.