home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1991
/
02
/
titel
/
list2.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1990-11-25
|
2KB
|
55 lines
(* ------------------------------------------------------ *)
(* Hex-in-ASCII-Wandler für Turbo Pascal 4.0 - 5.5 *)
(* Listing 2: prozedurale Programmierung *)
(* (c) 1991 G. Born & TOOLBOX *)
(* ------------------------------------------------------ *)
PROGRAM ASC;
TYPE
LongStr = STRING[80];
VAR
j : INTEGER;
zchn : LongStr; (* eingelesenes Zeichen *)
(* ---- Hilfsroutinen ----------------------------------- *)
PROCEDURE Error;
(* Abbruch mit Fehlermeldung *)
BEGIN
WriteLn('Fehler: falsche Hexzahl ', ParamStr(j));
Halt($FF);
END; (* Error *)
FUNCTION asc_hex(text : LongStr) : BYTE;
(* Decodieren der Hexzahl *)
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;
wert := wert * 16 + (tmp - 1); (* addiere Ziffer *)
END;
asc_hex := Lo(wert); (* Ergebnis zurück *)
END; (* asc_hex *)
(* ---- Hauptprogramm ----------------------------------- *)
BEGIN
IF ParamCount > 0 THEN (* lese Parameter *)
FOR j := 1 TO ParamCount DO BEGIN
zchn := ParamStr(j); (* hole Parameter *)
IF Length (zchn) > 2 THEN (* Fehler ? *)
error; (* Exit *)
Write (Chr(asc_hex(zchn))); (* Ausgabe Hex *)
END; (* FOR *)
Halt(0); (* Exit und setze Code *)
END.