Sari la conținut

Program care compara continutul a doua fisiere


donpetru

Postări Recomandate

Incerc de ceva vreme sa gasesc un program unde sa incarc doua fisiere (exemplu: cu extensia php, html etc) si sa vad diferentele dintre aceste fisiere, dar fara succes. Pana acum am gasit numai programe care compara randurile dintre cele doua fisiere, cum ar fi Win Merge, dar pe mine nu ma intereseaza asta. Deci, as vrea un program care compara continutul intreg a celor doua fisiere si sa-mi arate unde apare diferenta. Poate a auzit cineva de un astfel de program.

 

Numai Bine si sper sa nu mai fi fost vreo discutie de acest gen in forum. Din cate imi aduc aminte: nu.

Link spre comentariu
Distribuie pe alte site-uri

Pai ca sa le compare continutul, cel mai simplu e sa le citeasca linie cu linie si sa le semnaleze pe cele diferite (fisiere text).

Eu pt astfel de cazuri (fisiere text) am rezolvat cu programe simple scrise in TP7 si compilate pe Pentium.

Codul la cel mai simplu:

 

{COMPARE1.PAS}

uses crt;

var f1,f2:text;

r:text;

s1,s2:string;

begin

clrscr;

If paramcount<>2 then

begin

Writeln; Writeln(' Sintaxa corecta e cu 2 parametri: fisierele care se compara !!!');

If paramcount=0 then writeln(' Nu ai tastat nici un parametru...');

If paramcount=1 then writeln(' Ai tastat un singur parametru...');

Writeln; writeln; writeln(' Apasa o tasta...');

readkey; halt;

end;

assign(f1,paramstr(1));assign(f2,paramstr(2));

assign(r,'compare1.txt');

reset(f1);reset(f2);rewrite(r ); Writeln(r,' Comparatie intre fisierele ',paramstr(1),' si ',paramstr(2));

writeln(r,'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');

repeat

readln(f1,s1);

readln(f2,s2);

if s1<>s2 then begin writeln(r );

writeln(r,'Liniile astea sunt diferite: ');

writeln(r,'1 = ',s1);

writeln(r,'2 = ',s2);

end;

until eof(f1);

close(f1);

close(f2);

close(r );

end.

 

Se pot numerota liniile care nu sunt identice, cum e in urmatoarea varianta:

 

{COMPARE2.PAS}

uses crt;

var f1,f2:text;

r:text;

s1,s2:string;

i:longint;

begin

clrscr;

If paramcount<>2 then

begin

Writeln; Writeln(' Sintaxa corecta e cu 2 parametri: fisierele care se compara !!!');

If paramcount=0 then writeln(' Nu ai tastat nici un parametru...');

If paramcount=1 then writeln(' Ai tastat un singur parametru...');

Writeln; writeln; writeln(' Apasa o tasta...');

readkey; halt;

end;

assign(f1,paramstr(1));assign(f2,paramstr(2));assign(r,'compare2.txt');

reset(f1);reset(f2);rewrite(r ); Writeln(r,' Comparatie intre fisierele ',paramstr(1),' si ',paramstr(2));

writeln(r,'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');

i:=0;

repeat

readln(f1,s1);

readln(f2,s2);

inc(i,1);

if s1<>s2 then begin writeln(r );

writeln(r,'Liniile astea sunt diferite: (',i,')');

writeln(r,'1 = ',s1);

writeln(r,'2 = ',s2);

end;

until eof(f1);

close(f1);

close(f2);

close(r );

end.

  • Like 1
Link spre comentariu
Distribuie pe alte site-uri

Mersi, pana la urma m-am oprit la programul UltraCompare Professional.

Momentan timpul nu-mi permite sa abordez alte solutii. Solutia propusa de dvs., din ce observ, functioneaza la fel ca programele care compara randul nr.1 din fisierul nr.1 cu randul nr.1 din fisierul nr.2. Nu ma intereseaza acesta functie ci doar sa sublinieze ce continut nu apare intr-un fisier si exista in celalalt. Programul UltraCompare pare ceva mai aproape de acest deziderat.

 

Oricum, daca mai sunt idei va rog sa le formulati. Lucru valabil pentru toata lumea.

Link spre comentariu
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock