home *** CD-ROM | disk | FTP | other *** search
- // Code 39 (Full ASCII)
- Unit Kod7;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ExtCtrls,
- U;
-
- procedure HC7(var Co:TMemo);
- procedure S2L7(Co:String; StartStop:Boolean; Crc:Boolean ; var Raw:String; var RawS:String; var Bits:String);
-
-
- implementation
-
- const MaxKod=43;
- MaxKod2=127;
- var Kody:Array[0..43]of record
- Asc:String;
- Kod:Byte;
- Line:String;
- end;
- var KodTab:Array[0..130]of record
- Kod:String;
- Asc:String;
- end;
-
- procedure HC7(var Co:TMemo);
- var I:Word;
- begin
- Co.Clear;
- for I:=0 to MaxKod2 do
- with KodTab[I] do
- begin
- Co.Lines.Add(Hex(I)+' "'+Kod+'" ('+Asc+')');
- end;
- end;
-
- procedure S2L7(Co:String; StartStop:Boolean; Crc:Boolean ; var Raw:String; var RawS:String; var Bits:String);
- var I,J,K:Integer;
- Pom,Pom2:String;
- PomC:Byte;
- E:Integer;
- Ch:Byte;
- begin
- Raw:='';
- RawS:='';
- Bits:='';
- if Length(Co)=0 then Exit;
- //// Vy°a∩ neplatnΘ a zkonvertuj HEX verze
- I:=1;
- while I<=Length(Co) do
- begin
- // Co[I]:=UpCase(Co[I]);
- //// Je to $ ?
- if Co[I]='$' then // Je to HEX
- begin
- Pom:='';
- repeat
- Pom:=Pom+Co[I];
- I:=I+1; // Posu≥ o dalÜφ znak
- until (length(Pom)=3) or (I>Length(Co));
- if I<=Length(Co) then I:=I-1;
- Val(Pom,PomC,E);
- if (E=0)and(PomC<=MaxKod2) then
- begin
- Raw:=Raw+Chr(PomC);
- end;
- end else
- begin // Nenφ to HEX
- // for J:=0 to MaxKod do
- // if Co[I]=Kody[J].Asc then Raw:=Raw+Chr(Kody[J].Kod);
- if Ord(Co[I])<=MaxKod2 then Raw:=Raw+Co[I];
- end;
- I:=I+1;
- end;
-
- //// Konverze Code 39 Ful ASCII > Standard
-
- Pom:=Raw;
- Raw:='';
- for I:=1 to Length(Pom) do
- begin
- Raw:=Raw+KodTab[Ord(Pom[I])].Asc;
- end;
-
- Pom:=Raw;
- Raw:='';
- for I:=1 to Length(Pom) do
- begin
- for J:=0 to MaxKod do
- if Pom[I]=Kody[J].Asc then Raw:=Raw+Chr(Kody[J].Kod);
- end;
-
- //// Crc a Start/Stop
- if Crc then
- begin
- J:=0;
- for I:=1 to Length(Raw) do
- begin
- J:=J+Ord(Raw[I]);
- end;
- Raw:=Raw+Chr(J mod 43);
- end;
-
- if StartStop then Raw:=#39+Raw+#39;
- //// Na zobrazitelne
- //// +Na bity
- for I:=1 to Length(Raw) do
- begin
- RawS:=RawS+Kody[Ord(Raw[I])].Asc;
- Pom2:=Kody[Ord(Raw[I])].Line;
- Pom:='';
- Ch:=$31; // ZaΦφnßme jedniΦkou
- for J:=1 to Length(Pom2) do
- begin
- for K:=1 to (Ord(Pom2[J])-$30+1) do // Pozor na 0-x a 1-x v tabulce bit∙ !!!
- begin
- Pom:=Pom+Chr(Ch);
- end;
- Ch:=Ch xor 1;
- end;
- Bits:=Bits+Pom;
- end;
- end;
-
- begin
- with Kody[00]do begin Asc:='0';Kod:=0;Line:='0001101000';end;
- with Kody[01]do begin Asc:='1';Kod:=1;Line:='1001000010';end;
- with Kody[02]do begin Asc:='2';Kod:=2;Line:='0011000010';end;
- with Kody[03]do begin Asc:='3';Kod:=3;Line:='1011000000';end;
- with Kody[04]do begin Asc:='4';Kod:=4;Line:='0001100010';end;
- with Kody[05]do begin Asc:='5';Kod:=5;Line:='1001100000';end;
- with Kody[06]do begin Asc:='6';Kod:=6;Line:='0011100000';end;
- with Kody[07]do begin Asc:='7';Kod:=7;Line:='0001001010';end;
- with Kody[08]do begin Asc:='8';Kod:=8;Line:='1001001000';end;
- with Kody[09]do begin Asc:='9';Kod:=9;Line:='0011001000';end;
-
- with Kody[10]do begin Asc:='A';Kod:=10;Line:='1000010010';end;
- with Kody[11]do begin Asc:='B';Kod:=11;Line:='0010010010';end;
- with Kody[12]do begin Asc:='C';Kod:=12;Line:='1010010000';end;
- with Kody[13]do begin Asc:='D';Kod:=13;Line:='0000110010';end;
- with Kody[14]do begin Asc:='E';Kod:=14;Line:='1000110000';end;
- with Kody[15]do begin Asc:='F';Kod:=15;Line:='0010110000';end;
- with Kody[16]do begin Asc:='G';Kod:=16;Line:='0000011010';end;
- with Kody[17]do begin Asc:='H';Kod:=17;Line:='1000011000';end;
- with Kody[18]do begin Asc:='I';Kod:=18;Line:='0010011000';end;
- with Kody[19]do begin Asc:='J';Kod:=19;Line:='0000111000';end;
-
- with Kody[20]do begin Asc:='K';Kod:=20;Line:='1000000110';end;
- with Kody[21]do begin Asc:='L';Kod:=21;Line:='0010000110';end;
- with Kody[22]do begin Asc:='M';Kod:=22;Line:='1010000100';end;
- with Kody[23]do begin Asc:='N';Kod:=23;Line:='0000100110';end;
- with Kody[24]do begin Asc:='O';Kod:=24;Line:='1000100100';end;
- with Kody[25]do begin Asc:='P';Kod:=25;Line:='0010100100';end;
- with Kody[26]do begin Asc:='Q';Kod:=26;Line:='0000001110';end;
- with Kody[27]do begin Asc:='R';Kod:=27;Line:='1000001100';end;
- with Kody[28]do begin Asc:='S';Kod:=28;Line:='0010001100';end;
- with Kody[29]do begin Asc:='T';Kod:=29;Line:='0000101100';end;
-
- with Kody[30]do begin Asc:='U';Kod:=30;Line:='1100000010';end;
- with Kody[31]do begin Asc:='V';Kod:=31;Line:='0110000010';end;
- with Kody[32]do begin Asc:='W';Kod:=32;Line:='1110000000';end;
- with Kody[33]do begin Asc:='X';Kod:=33;Line:='0100100010';end;
- with Kody[34]do begin Asc:='Y';Kod:=34;Line:='1100100000';end;
- with Kody[35]do begin Asc:='Z';Kod:=35;Line:='0110100000';end;
- with Kody[36]do begin Asc:='-';Kod:=36;Line:='0100001010';end;
- with Kody[37]do begin Asc:='.';Kod:=37;Line:='1100001000';end;
- with Kody[38]do begin Asc:=' ';Kod:=38;Line:='0110001000';end;
- with Kody[39]do begin Asc:='*';Kod:=39;Line:='0100101000';end;
-
- with Kody[40]do begin Asc:='$';Kod:=40;Line:='0101010000';end;
- with Kody[41]do begin Asc:='/';Kod:=41;Line:='0101000100';end;
- with Kody[42]do begin Asc:='+';Kod:=42;Line:='0100010100';end;
- with Kody[43]do begin Asc:='%';Kod:=43;Line:='0001010100';end;
-
-
- with KodTab[0]do begin Kod:='NUL';Asc:='%U';end;
- with KodTab[1]do begin Kod:='SOH';Asc:='$A';end;
- with KodTab[2]do begin Kod:='STX';Asc:='$B';end;
- with KodTab[3]do begin Kod:='ETX';Asc:='$C';end;
- with KodTab[4]do begin Kod:='EOT';Asc:='$D';end;
- with KodTab[5]do begin Kod:='ENQ';Asc:='$E';end;
- with KodTab[6]do begin Kod:='ACK';Asc:='$F';end;
- with KodTab[7]do begin Kod:='BEL';Asc:='$G';end;
- with KodTab[8]do begin Kod:='BS';Asc:='$H';end;
- with KodTab[9]do begin Kod:='HT';Asc:='$I';end;
-
- with KodTab[10]do begin Kod:='LF';Asc:='$J';end;
- with KodTab[11]do begin Kod:='VT';Asc:='$K';end;
- with KodTab[12]do begin Kod:='FF';Asc:='$L';end;
- with KodTab[13]do begin Kod:='CR';Asc:='$M';end;
- with KodTab[14]do begin Kod:='SO';Asc:='$N';end;
- with KodTab[15]do begin Kod:='SI';Asc:='$O';end;
- with KodTab[16]do begin Kod:='DLE';Asc:='$P';end;
- with KodTab[17]do begin Kod:='DC1';Asc:='$Q';end;
- with KodTab[18]do begin Kod:='DC2';Asc:='$R';end;
- with KodTab[19]do begin Kod:='DC3';Asc:='$S';end;
-
- with KodTab[20]do begin Kod:='DC4';Asc:='$T';end;
- with KodTab[21]do begin Kod:='NAK';Asc:='$U';end;
- with KodTab[22]do begin Kod:='SYN';Asc:='$V';end;
- with KodTab[23]do begin Kod:='ETB';Asc:='$W';end;
- with KodTab[24]do begin Kod:='CAN';Asc:='$X';end;
- with KodTab[25]do begin Kod:='EM';Asc:='$Y';end;
- with KodTab[26]do begin Kod:='SUB';Asc:='$Z';end;
- with KodTab[27]do begin Kod:='ESC';Asc:='%A';end;
- with KodTab[28]do begin Kod:='FS';Asc:='%B';end;
- with KodTab[29]do begin Kod:='GS';Asc:='%C';end;
-
- with KodTab[30]do begin Kod:='RS';Asc:='%D';end;
- with KodTab[31]do begin Kod:='US';Asc:='%E';end;
- with KodTab[32]do begin Kod:='SPACE';Asc:=' ';end;
- with KodTab[33]do begin Kod:='!';Asc:='/A';end;
- with KodTab[34]do begin Kod:='"';Asc:='/B';end;
- with KodTab[35]do begin Kod:='#';Asc:='/C';end;
- with KodTab[36]do begin Kod:='$';Asc:='/D';end;
- with KodTab[37]do begin Kod:='%';Asc:='/E';end;
- with KodTab[38]do begin Kod:='&';Asc:='/F';end;
- with KodTab[39]do begin Kod:=#39;Asc:='/G';end;
-
- with KodTab[40]do begin Kod:='(';Asc:='/H';end;
- with KodTab[41]do begin Kod:=')';Asc:='/I';end;
- with KodTab[42]do begin Kod:='*';Asc:='/J';end;
- with KodTab[43]do begin Kod:='+';Asc:='/K';end;
- with KodTab[44]do begin Kod:=',';Asc:='/L';end;
- with KodTab[45]do begin Kod:='-';Asc:='-';end;
- with KodTab[46]do begin Kod:='.';Asc:='.';end;
- with KodTab[47]do begin Kod:='/';Asc:='/O';end;
- with KodTab[48]do begin Kod:='0';Asc:='0';end;
- with KodTab[49]do begin Kod:='1';Asc:='1';end;
-
- with KodTab[50]do begin Kod:='2';Asc:='2';end;
- with KodTab[51]do begin Kod:='3';Asc:='3';end;
- with KodTab[52]do begin Kod:='4';Asc:='4';end;
- with KodTab[53]do begin Kod:='5';Asc:='5';end;
- with KodTab[54]do begin Kod:='6';Asc:='6';end;
- with KodTab[55]do begin Kod:='7';Asc:='7';end;
- with KodTab[56]do begin Kod:='8';Asc:='8';end;
- with KodTab[57]do begin Kod:='9';Asc:='9';end;
- with KodTab[58]do begin Kod:=':';Asc:='/';end;
- with KodTab[59]do begin Kod:=';';Asc:='%F';end;
-
- with KodTab[60]do begin Kod:='<';Asc:='%G';end;
- with KodTab[61]do begin Kod:='=';Asc:='%H';end;
- with KodTab[62]do begin Kod:='>';Asc:='%I';end;
- with KodTab[63]do begin Kod:='?';Asc:='%J';end;
- with KodTab[64]do begin Kod:='@';Asc:='%V';end;
- with KodTab[65]do begin Kod:='A';Asc:='A';end;
- with KodTab[66]do begin Kod:='B';Asc:='B';end;
- with KodTab[67]do begin Kod:='C';Asc:='C';end;
- with KodTab[68]do begin Kod:='D';Asc:='D';end;
- with KodTab[69]do begin Kod:='E';Asc:='E';end;
-
- with KodTab[70]do begin Kod:='F';Asc:='F';end;
- with KodTab[71]do begin Kod:='G';Asc:='G';end;
- with KodTab[72]do begin Kod:='H';Asc:='H';end;
- with KodTab[73]do begin Kod:='I';Asc:='I';end;
- with KodTab[74]do begin Kod:='J';Asc:='J';end;
- with KodTab[75]do begin Kod:='K';Asc:='K';end;
- with KodTab[76]do begin Kod:='L';Asc:='L';end;
- with KodTab[77]do begin Kod:='M';Asc:='M';end;
- with KodTab[78]do begin Kod:='N';Asc:='N';end;
- with KodTab[79]do begin Kod:='O';Asc:='O';end;
-
- with KodTab[80]do begin Kod:='P';Asc:='P';end;
- with KodTab[81]do begin Kod:='Q';Asc:='Q';end;
- with KodTab[82]do begin Kod:='R';Asc:='R';end;
- with KodTab[83]do begin Kod:='S';Asc:='S';end;
- with KodTab[84]do begin Kod:='T';Asc:='T';end;
- with KodTab[85]do begin Kod:='U';Asc:='U';end;
- with KodTab[86]do begin Kod:='V';Asc:='V';end;
- with KodTab[87]do begin Kod:='W';Asc:='W';end;
- with KodTab[88]do begin Kod:='X';Asc:='X';end;
- with KodTab[89]do begin Kod:='Y';Asc:='Y';end;
-
- with KodTab[90]do begin Kod:='Z';Asc:='Z';end;
- with KodTab[91]do begin Kod:='[';Asc:='%K';end;
- with KodTab[92]do begin Kod:='\';Asc:='%L';end;
- with KodTab[93]do begin Kod:=']';Asc:='%M';end;
- with KodTab[94]do begin Kod:='^';Asc:='%N';end;
- with KodTab[95]do begin Kod:='_';Asc:='%O';end;
- with KodTab[96]do begin Kod:=#96;Asc:='%W';end;
- with KodTab[97]do begin Kod:='a';Asc:='+A';end;
- with KodTab[98]do begin Kod:='b';Asc:='+B';end;
- with KodTab[99]do begin Kod:='c';Asc:='+C';end;
-
- with KodTab[100]do begin Kod:='d';Asc:='+D';end;
- with KodTab[101]do begin Kod:='e';Asc:='+E';end;
- with KodTab[102]do begin Kod:='f';Asc:='+F';end;
- with KodTab[103]do begin Kod:='g';Asc:='+G';end;
- with KodTab[104]do begin Kod:='h';Asc:='+H';end;
- with KodTab[105]do begin Kod:='i';Asc:='+I';end;
- with KodTab[106]do begin Kod:='j';Asc:='+J';end;
- with KodTab[107]do begin Kod:='k';Asc:='+K';end;
- with KodTab[108]do begin Kod:='l';Asc:='+L';end;
- with KodTab[109]do begin Kod:='m';Asc:='+M';end;
-
- with KodTab[110]do begin Kod:='n';Asc:='+N';end;
- with KodTab[111]do begin Kod:='o';Asc:='+O';end;
- with KodTab[112]do begin Kod:='p';Asc:='+P';end;
- with KodTab[113]do begin Kod:='q';Asc:='+Q';end;
- with KodTab[114]do begin Kod:='r';Asc:='+R';end;
- with KodTab[115]do begin Kod:='s';Asc:='+S';end;
- with KodTab[116]do begin Kod:='t';Asc:='+T';end;
- with KodTab[117]do begin Kod:='u';Asc:='+U';end;
- with KodTab[118]do begin Kod:='v';Asc:='+V';end;
- with KodTab[119]do begin Kod:='w';Asc:='+W';end;
-
- with KodTab[120]do begin Kod:='x';Asc:='+X';end;
- with KodTab[121]do begin Kod:='y';Asc:='+Y';end;
- with KodTab[122]do begin Kod:='z';Asc:='+Z';end;
- with KodTab[123]do begin Kod:='{';Asc:='%P';end;
- with KodTab[124]do begin Kod:=#124;Asc:='%Q';end;
- with KodTab[125]do begin Kod:='}';Asc:='%R';end;
- with KodTab[126]do begin Kod:='~';Asc:='%S';end;
- with KodTab[127]do begin Kod:='DEL';Asc:='%T';end;
- with KodTab[127]do begin Kod:='DEL';Asc:='%X';end;
- with KodTab[128]do begin Kod:='DEL';Asc:='%Y';end;
- with KodTab[129]do begin Kod:='DEL';Asc:='%Z';end;
- end.
-