program showword (input, inf, output, outf); type rec = packed record cs: packed array [1..4] of char; num: longint; end; eight = packed array [1..8] of char; var inf: file of rec; outf: text; one: rec; name, outname: string[30]; j: integer; hex: eight; procedure makehex (num: longint; var s: eight); var digits: packed array [0..15] of char; j, k, d: integer; begin digits := '0123456789ABCDEF'; for k := 8 downto 1 do begin d := num mod 16; s[k] := digits[d]; num := num div 16; end; end; begin write ('Enter file name: '); readln (name); assign (inf, name); reset (inf); write ('Enter display file name: '); readln (outname); assign (outf, outname); rewrite (outf); writeln (outf); while not eof (inf) do begin read (inf, one); makehex (one.num, hex); write (outf, hex, ' '); for j := 1 to 4 do if (ord(one.cs[j]) > 30) and (ord(one.cs[j]) < 128) then write (outf, one.cs[j]) else write (outf, '.'); writeln (outf); end; close (inf); close (outf); end.