home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 18 / CD_ASCQ_18_111294_W.iso / dos / prg / pas / gfxfx / convert.pas < prev    next >
Pascal/Delphi Source File  |  1994-04-19  |  973b  |  42 lines

  1.  
  2. program convertsystems;
  3. const bin=2; oct=8; dec=10; hex=16;
  4. var num:string;
  5.  
  6. function power(src,pwr:byte):word;
  7. var dst:word; i:byte;
  8. begin
  9.   dst:=1;
  10.   for i:=1 to pwr do dst:=dst*src;
  11.   power:=dst;
  12. end;
  13.  
  14. procedure convert(sysfr,systo : byte; src : string; var dst : string);
  15. const numstr:array[0..35] of char='0123456789abcdefghijklmnopqrstuvwxyz';
  16. var tmpdst:string; result:real; len,i,j,pos:byte;
  17. begin
  18.   len:=length(src); result:=0;
  19.   for i:=1 to len do begin
  20.     pos:=255; j:=0;
  21.     while (j<length(numstr)) and (pos<>(j-1)) do begin
  22.       if upcase(src[i])=upcase(numstr[j]) then pos:=j;
  23.       inc(j);
  24.     end;
  25.     result:=result+pos*power(sysfr,len-i);
  26.   end;
  27.   tmpdst:='';
  28.   while result <> 0 do begin
  29.     result:=result/systo;
  30.     j:=round(frac(result)*systo);
  31.     insert(numstr[j],tmpdst,1);
  32.     result:=result-frac(result);
  33.   end;
  34.   dst:=tmpdst;
  35. end;
  36.  
  37. begin
  38.   convert(hex,bin,'9999',num);
  39.   writeln(num);
  40.   readln;
  41. end.
  42.