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

  1. (* ------------------------------------------------------ *)
  2. (*     Hex-in-ASCII-Wandler für Turbo Pascal 4.0 - 5.5    *)
  3. (*           Listing 1: lineare Programmierung            *)
  4. (*    Das Programm liest die Parameter der Eingabezeile   *)
  5. (*    und gibt die Hexwerte als ASCII-Codes an die Aus-   *)
  6. (*    gabe weiter (z.B.: ASC 1B 33 00 23) )               *)
  7. (*             (c) 1991 G. Born & TOOLBOX                 *)
  8. (* ------------------------------------------------------ *)
  9. PROGRAM ASC;
  10.  
  11. VAR
  12.   i, j     : INTEGER;
  13.   zchn     : STRING[9];           (* eingelesenes Zeichen *)
  14.   hex, tmp : WORD;                (* Codewert             *)
  15.  
  16. (* ---- Hauptprogramm ----------------------------------- *)
  17. BEGIN
  18.   IF ParamCount > 0 THEN                (* lese Parameter *)
  19.     FOR j := 1 TO ParamCount DO BEGIN
  20.       hex  := 0;                        (* Init-Code      *)
  21.       zchn := ParamStr(j);
  22.       IF Length (zchn) > 2 THEN BEGIN   (* Fehler ?       *)
  23.  
  24.         WriteLn('Fehler: falsche Hexzahl ', ParamStr(j));
  25.         Halt($FF);
  26.       END;
  27.       FOR i := 1 TO Length(zchn) DO BEGIN
  28.         zchn[i] := UpCase(zchn[i]);     (* Großbuchstaben *)
  29.         tmp     := Pos(zchn[i], '0123456789ABCDEF');
  30.                                         (* decodiere      *)
  31.         IF tmp = 0 THEN BEGIN           (* Fehler ?       *)
  32.  
  33.           WriteLn('Fehler: falsches Zeichen ', ParamStr(j));
  34.           Halt($FF);
  35.         END;
  36.         hex := hex * 16 + (tmp - 1);    (* addiere Ziffer *)
  37.       END;
  38.       Write(Chr(Lo(hex)));              (* Ausgabe Hex    *)
  39.     END;  (* FOR *)
  40.  
  41.   Halt (0);                       (* Exit und setze Code  *)
  42. END.
  43.