• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

Споредување на фајлови [PASCAL]

  • Ја почнал/а темата
  • #1

Aleks

Gaining Experience
18 мај 2007
5,748
288
Пак од досада :p

Програмата споредува дали 2 фајлови се исти и дали има и ако има разлика/ки ги испечатува тие реченици во кои се јавува разликата. Истотака ако едниот фајл е поголем од другиот оди до крај на пократкиот за џабе да нетроши циклуси.

КОД:

Код:
program compare;
var
  File1, File2: TextFile;
  Fin1, Fin2: String;
  IOR,B,R,L,L1,L2:Integer;
  S1,S2   , T1,T2: String;
begin
  Write('Vnesete go fajlob br1: ');
  ReadLn(Fin1);
  Write('Vnesete go fajlot br2: ');
  ReadLn(Fin2);

  // Getting file 1 loaded into memory !
  Assign(File1,Fin1);
  {$I-}
  Reset(File1);
  {$I+}
  IOR:=IOResult;
  if IOR = 2 then
    begin
      WriteLn('Fajlot "',Fin1,'" ne e pronajden !');
      exit;
    end;

  // Getting file 2 loaded into memory !
  Assign(File2,Fin2);
  {$I-}
  Reset(File2);
  {$I+}
  IOR:=IOResult;
  if IOR = 2 then
    begin
      WriteLn('Fajlot "',Fin2,'" ne e pronajden !');
    end;
  // Done loading, lets get coding ! :)

  L1:=0; L2:=0;

  While not eof(File1) do
    begin
      ReadLn(File1,T1);
      L1:=L1+1;
    end;
  While not eof(File2) do
    begin
      ReadLn(File2,T2);
      L2:=L2+1;
    end;

  if L1=L2 then
    L:=L1;
  if L1>L2 then
    begin
      L:=L2;
      WriteLn('Vtoriot fajl e pokratok od prviot, sporeduvanjeto kje ode do kraj na vtoriot fajl i kje prestane');
    end;
  if L2>L1 then
    begin
      L:=L1;
      WriteLn('Prviot fajl e pokratok od vtoriot, sporeduvanjeto kje ode do kraj na prviot fajl i kje prestane');
    end;

  B:=1; R:=0;
  Reset(File1);
  Reset(File2);
  While B<L do
    begin
      ReadLn(File1,S1);
      ReadLn(File2,S2);
      if (S1<>S2) AND (length(S1)<>length(s2)) then
        begin
          R:=R+1;
          WriteLn('!!! Najdena razlika BR.',R,'!!!');
          WriteLn('Linijata Br.',B,' ne e ista vo dvata fajlovi');
          WriteLn('Fajl br.1 : "',S1,'"');
          WriteLn('Fajl br.2 : "',S2,'"');
          WriteLn('========================================');
        end;
      B:=B+1;
    end;
  Close(File1);
  Close(File2);

  if R=0 then
    WriteLn('Sporeduvanjeto zavrshi. Ne bea najdeni razliki vo dvata fajlovi')
  else
    if R=1 then
      WriteLn('Sporeduvanjeto zavrshi. Beshe najdena edna razlika')
    else
      WriteLn('Sporeduvanjeto zavrshi. Bea najdeni ',R,' razliki.');
end. // copyleft Aleks =)
 

stefan007

Intern
27 јуни 2007
395
2
Е ако ова го правиш од досада што би правел кога нема да ти е досадно кога ќе биднеш инспириран од нешто?/? ме загрижуваш :D:D
 

Нови мислења

Последни Теми

Статистика

Теми
43,586
Мислења
824,067
Членови
28,083
Најнов член
Busavata
На врв Дно