home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* Hex-in-ASCII-Wandler für Turbo Pascal 4.0 - 5.5 *)
- (* Listing 1: lineare Programmierung *)
- (* Das Programm liest die Parameter der Eingabezeile *)
- (* und gibt die Hexwerte als ASCII-Codes an die Aus- *)
- (* gabe weiter (z.B.: ASC 1B 33 00 23) ) *)
- (* (c) 1991 G. Born & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM ASC;
-
- VAR
- i, j : INTEGER;
- zchn : STRING[9]; (* eingelesenes Zeichen *)
- hex, tmp : WORD; (* Codewert *)
-
- (* ---- Hauptprogramm ----------------------------------- *)
- BEGIN
- IF ParamCount > 0 THEN (* lese Parameter *)
- FOR j := 1 TO ParamCount DO BEGIN
- hex := 0; (* Init-Code *)
- zchn := ParamStr(j);
- IF Length (zchn) > 2 THEN BEGIN (* Fehler ? *)
-
- WriteLn('Fehler: falsche Hexzahl ', ParamStr(j));
- Halt($FF);
- END;
- FOR i := 1 TO Length(zchn) DO BEGIN
- zchn[i] := UpCase(zchn[i]); (* Großbuchstaben *)
- tmp := Pos(zchn[i], '0123456789ABCDEF');
- (* decodiere *)
- IF tmp = 0 THEN BEGIN (* Fehler ? *)
-
- WriteLn('Fehler: falsches Zeichen ', ParamStr(j));
- Halt($FF);
- END;
- hex := hex * 16 + (tmp - 1); (* addiere Ziffer *)
- END;
- Write(Chr(Lo(hex))); (* Ausgabe Hex *)
- END; (* FOR *)
-
- Halt (0); (* Exit und setze Code *)
- END.