Скачиваний:
12
Добавлен:
28.03.2015
Размер:
2.85 Кб
Скачать
const Chars=[' ','0'..'9','A'..'F'];
VAR s,z,secname: String;
f:text;
g:file of Byte;
i,j,p:byte;

procedure GoAway;
begin
writeln('ЋиЁЎЄ  ў ⥪бв®ў®¬ д ©«Ґ (бва®Є  ',p,').');
writeln(secname+' г¤ «с­.');
close(g);
erase(g);
halt(2);
end;

procedure DoIt(var s:string);
var i:byte;bool:boolean;
Begin
for i:=1 to length(s) do { <tab> := ' '}
if ord(s[i])=9 then s[i]:=' ';

i:=1; { out double spaces }
j:=1;
bool:=true;
while i<=length(s) do
begin
if (s[i]<>' ') or (not bool) then
begin
s[j]:=UpCase(s[i]);
inc(j);
if s[i]=' ' then bool:=true else bool:=false;
end;
inc(i);
end;
s[0]:=char(j-1);
for i:=1 to length(s) do if not (s[i] in Chars) then GoAway;
end;

function ToByte(str:string):byte;
CONST HEX : ARRAY['A'..'F'] OF INTEGER = (10,11,12,13,14,15);
var Int,i: byte;
begin
Int := 0;
FOR i := 1 TO Length(str) DO
IF str[i] < 'A' THEN Int := Int * 16 + ORD(str[i]) - 48
ELSE Int := Int * 16 + HEX[str[i]];
ToByte:=Int;
end;

BEGIN
if paramcount=0 then { note }
begin
Writeln;
Writeln('=========================== TXT2HEX ======================================');
Writeln;
Writeln('‡ ¤ ©вҐ Ё¬п ў иҐЈ® д ©«  ў Є зҐб⢥ Ї а ¬Ґва  ЇаЁ § ЇгбЄҐ ¤ ­­®© ЇаЈа ¬¬л:');
Writeln('txt2hex.exe <Ё¬п_д ©« >');
Writeln;
Writeln('„ ­­ п Їа®Ја ¬¬  ЇаҐ®Ўа §гҐв ⥪бв®ўлҐ д ©«л, ᮤҐа¦ йЁҐ ⥪бв Їа®Ја ¬¬,');
Writeln('­ ЇЁб ­­ле ў ¬ иЁ­­ле Є®¤ е, ў Їа®Ја ¬¬л д®а¬ в  .com');
Writeln;
Writeln('‚ ⥪бв®ўле д ©« е ¤®ЇгбЄ Ґвбп ЁбЇ®«м§®ў ­ЁҐ Є Є бва®з­ле, в Є Ё Їа®ЇЁб­ле');
Writeln('ЎгЄў « вЁ­бЄ®Ј®  «д ўЁв  ᮤҐа¦ йЁебп ў ­ ЇЁб ­ЁЁ иҐбв­ ¤ж вЁаЁз­ле жЁда.');
Writeln;
Writeln('Ћв¤Ґ«м­лҐ Ў ©вл ®в¤Ґ«повбп ¤агЈ ®в ¤агЈ  бЁ¬ў®« ¬Ё Їа®ЎҐ«  Ё«Ё в Ўг«пжЁЁ.');
Writeln;
Writeln('’ҐЄбв, а бЇ®« Ј ойЁ©бп ў бва®ЄҐ Їа ўҐҐ бЁ¬ў®«  ";" бзЁв Ґвбп Є®¬¬Ґ­в аЁҐ¬');
Writeln('Ё Ё­вҐаЇаҐв в®а®¬ ЁЈ­®аЁагҐвбп.');
Writeln;
Writeln('‘®§¤ « Њ вгеЁ­ ђ.‚. / ­Ґ ЎҐ§ гз бвЁп ђг¦Ґ­бЄ®Ј® Ћ.‚. /');

Halt(0);
end;

s:=paramstr(1);
assign(f,s);

if pos('.',s)<>0 then s[0]:=Char(pos('.',s)-1);

secname:=s+'.com';
assign(g,secname);

reset(f);
rewrite(g);
p:=1;
while not eof(f) do
begin
READLN(f,s);
if pos(';',s)<>0 then s[0]:=Char(pos(';',s)-1); {Cut comments}
DoIt(s);
j:=1;
s:=s+' '; { vot tak }
while j<length(s) do
begin
z:='';
while s[j]<>' ' do
begin
z:=z+s[j];
inc(j)
end;
inc(j);

i:=ToByte(z);
WRITE(g,i);
end;
inc(p);
end;

close(f);
close(g);
{ “cс }
END.
Соседние файлы в папке Source