struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN long stoh(d,s) register unsigned char *d,*s; { register long l=0; register unsigned char c,cc,*cp,*hp; if(!d) l=-1; if(!s) l=-1; if(l>=0) { if(*s) { cp=s; hp=d; c=*cp; do { cc=(c>>4)+48; if(cc>57) cc+=7; *hp=cc; hp++; l++; cc=(c&0xF)+48; if(cc>57) cc+=7; *hp++=cc; cp++; l++; c=*cp; } while(c); } } if(hp) *hp=0; return l; }; /* htos $V0.2 */ #endif long test(s) unsigned char *s; { long el=0; unsigned char os[1024],*p; el=stoh(os,s); printf("<%s> = <%s> %ld",s,os,el); puts(""); return el; }; int main() { /* MAIN */ long el=0,l=32,i,j; unsigned char s[256],hs[128],*p,*cp,c,cc,*hp; cp=s; StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); p=s; *p++=0xB0; /* <°> */ *p++=0xB1; /* <±> */ *p++=0xB2; /* <²> */ *p++=0xB3; /*<³> */ *p++=0xB4; /* <´> */ *p++=0xB5; /*<µ> */ *p++=0xB6; /*<¶> */ *p++=0xB7; /*<·> */ *p=0; el=test(s); el=test("Dies ist ein Test von "); el=test(" -- von stoh --"); el=test("@AB19"); el=test("A\nB"); el=test(" !# $%&'"); el=test("()*+ ,-./"); el=test("0123 4567"); el=test("89:; <=>?"); el=test("@ABC DEFG"); el=test("HIJK LMNO"); el=test("PQRS TUVW"); el=test("XYZ[ \]^_"); el=test("`abc defg"); el=test("hijk lmno"); el=test("pqrs tuvw"); el=test("xyz{ |}~"); /* el=test(" ¡¢£ ¤¥¦§"); el=test("©ª« ¬­®¯"); el=test("°±²³ ´µ¶·"); el=test("¸¹º» ¼½¾¿"); el=test("ÀÁÂà ÄÅÆÇ"); el=test("ÈÉÊË ÌÍÎÏ"); el=test("ÐÑÒÓ ÔÕÖ×"); el=test("ØÙÚÛ ÜÝÞß"); el=test("àáâã äåæç"); el=test("èéêë ìíîï"); el=test("ðñòó ôõö÷"); el=test("øùúû üýþÿ"); */ if(StringsBase) CloseLibrary(StringsBase); return el; } /* END */ /* <°±²³´µ¶·> = 16 = <44696573206973742065696E205465737420766F6E20> 44 < -- von stoh --> = <202D2D20766F6E2073746F68202D2D> 30 <@AB19> = <4041423139> 10 = <410A42> 6 < !# $%&'> = <2021232024252627> 16 <()*+ ,-./> = <28292A2B202C2D2E2F> 18 <0123 4567> = <303132332034353637> 18 <89:; <=>?> = <38393A3B203C3D3E3F> 18 <@ABC DEFG> = <404142432044454647> 18 = <48494A4B204C4D4E4F> 18 = <505152532054555657> 18 = <58595A5B205D5E5F> 16 <`abc defg> = <606162632064656667> 18 = <68696A6B206C6D6E6F> 18 = <707172732074757677> 18 = <78797A7B207C7D7E7F> 18 */