home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / newc_dev / comp10.lha / comp.pas < prev    next >
Pascal/Delphi Source File  |  1992-11-07  |  3KB  |  161 lines

  1. program COMP;
  2.  
  3. {written by Case in January 07, 1993}
  4.  
  5. {this utility compares two files}
  6.  
  7.  
  8. uses dos;
  9.  
  10. var file1,file2:string;
  11. i,n:longint;
  12. cha,chb:char;
  13. a,b:file of byte;
  14. equal,siz:boolean;
  15. f1,f2:text;
  16. par:word;
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23. procedure esa(num:longint);
  24.  
  25. var aux,k,m,elev,nn,conv:longint;
  26.  
  27.  
  28. procedure writ(nn:integer);
  29.  
  30. begin
  31.  
  32. case nn of
  33.           10: write ('A');
  34.           11: write ('B'); 
  35.           12: write ('C'); 
  36.           13: write ('D'); 
  37.           14: write ('E'); 
  38.           15: write ('F'); 
  39.           else write (nn)
  40. end  {end of case}
  41.  
  42. end;            {procedure writ}
  43.  
  44.  
  45.  
  46. begin            {procedure esa}
  47.  
  48.  
  49. write (' ($');
  50.        
  51. if (num<10) then write(num)
  52.  
  53. else begin
  54.  
  55.   k:=0;
  56.   aux:=num;
  57.  
  58.   while aux>15 do begin
  59.                 aux:=trunc(aux/16);
  60.                 inc(k,1) end;
  61.  
  62.   elev:=conv;
  63.  
  64.   while k>0 do 
  65.   begin
  66.      elev:=16;
  67.  
  68.      for m:=1 to k-1 do elev:=elev*16;
  69.      nn:=trunc(num/elev); 
  70.  
  71.      writ(nn);
  72.         
  73.      num:=num - (nn*elev);
  74.      dec(k,1)
  75.          
  76.   end;         
  77.  
  78. writ(num)
  79.  
  80. end;
  81.  
  82. writeln(')')
  83.  
  84. end;         {procedure esa}
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91. begin            {main}
  92.  
  93. i:=0;
  94. equal:=true;
  95.  
  96. par:=paramcount;   
  97.  
  98. case par of                           {I'm reading files'names}
  99. 0:begin writeln('Input file1''name');
  100.         readln(file1);
  101.         writeln('Input file2''name ');
  102.         readln(file2) end;
  103. 1:begin file1:=paramstr(1);
  104.         writeln ('File 1 is ', file1);
  105.         writeln ('Input File2''name ');
  106.         readln(file2) end;
  107. else begin file1:=paramstr(1);
  108.         writeln ('file 1 is ', file1);
  109.         file2:=paramstr(2);
  110.         writeln ('file 2 is ', file2)  end
  111. end; {end of case}        
  112.         
  113.         
  114. assign(a,file1);      {I'm reading files'lenght}
  115. assign(b,file2);
  116. reset(a);
  117. reset(b);
  118. if filesize(a)=0 then begin writeln('File ',file1,' not found');
  119.                             read(cha); halt end;
  120. if filesize(b)=0 then begin writeln('File ',file2,' not found');
  121.                             read(cha); halt end;
  122.  
  123. siz:= (filesize(a))<>(filesize(b));
  124. if siz then writeln('file have different size')
  125.        else  i:=(filesize(a)); 
  126. close(a);
  127. close(b);
  128.  
  129.  
  130. if i<>0 then begin              {I'm comparing files}
  131.               assign(f1,file1);
  132.               assign(f2,file2);
  133.               reset(f1);
  134.               reset(f2);
  135.               for n:=0 to i do
  136.                  begin
  137.                   read(f1,cha);
  138.                   read(f2,chb);
  139.                   if cha<>chb then begin
  140.                                write(cha,' <> ',chb,'   character N.',n);
  141.                                esa(n);  
  142.                                equal:=false end
  143.                end;
  144.               close (f1);
  145.               close(f2)
  146.               end;
  147.               
  148.         
  149.         
  150.         
  151.               {final result}
  152.               
  153. if (equal and not siz) then writeln('file compare ok');
  154. writeln('end of compare');
  155. read(cha)
  156.  
  157. end.
  158.  
  159.  
  160.  
  161.