Procedimiento que compara dos ficheros del disco

Por Saiyine Enviar correo el 0000-00-00 00:00:00 - Secciones:  DELPHI  - Enlace permanente: 494

function CompararFicheros(const a : string; const b : string) : boolean;
var
f,g : file;
buf1,buf2 : array[1..2000] of byte;
i,leidof,leidog : integer;
todobien : boolean;
begin
        result:=true;
        assignfile(f,a);
        reset(f,1);
        assignfile(g,b);
        reset(g,1);
        if filesize(f)filesize(g)
        then result:=false
        else
        begin
                todobien:=true;
                leidof:=0;
                leidog:=0;
                while todobien do
                begin
                        blockread(f,buf1,sizeof(buf1),leidof);
                        blockread(g,buf2,sizeof(buf2),leidog);
                        if (leidof=0) or (leidog=0) or (leidofleidog)
                        then todobien:=false
                        else
                        for i:=1 to leidof do
                        if buf1[i]buf2[i] then
                        begin
                                result:=false;
                                todobien:=false;
                        end;
                end;
        end;
        closefile(g);
        closefile(f);
end;

Subiendo el valor que define el tamaño de los buffers de lectura se puede acelerar el proceso, pero prefiero dejarlo asi para ahorrar memoria... pero claro todo va en gustos, para los que tengan prisa, subid el valor :D .

El codigo en si no tiene gran cosa, es abrir dos ficheros simultaneamente y leerlos en bloques de tamaño igual al tamaño de los buffers. Primero comparo el tamaño para asegurar que son iguales, ya que si no es asi, no tiene sentido compararlos: seran diferentes.

A destacar un par de cosas: no tiene chequeo de si los ficheros existen o no, y que a efectos de comparacion solo usa el contenido de los ficheros, pero no las fechas,atributos, etc

Otras entradas de la web que podrian interesarte:

SocializerMenefante Del.icio.us Digg 


Tu nombre (Nick):

Tu correo (Email):
  Necesario para tu gravatar!

Tu página (URL):

Escribe aqui tu comentario:

       :noworry: :roll: :huh: :push: :OO 8) 8O :( :) :? :D :P :o :x :| ;) ^^ xD



Vista previa activada.

Vista previa (6/6/6, 6:66)


Fondos de pantalla

. . .

Recomendamos

  • Betsson bahis adresi betsson iddaa bahis
  • Canli bahis betsson bahis sitesinde.

. . .

Descargas

  • ApagaPC
    apagapc241.exe  (3489)
  • LimpiaDocus
    LimpiaDocus001.exe  (2767)
  • RCM
    rcm001.zip  (2346)
  • Popmail
    popmail-0.4-psmn.tar.gz  (2410)
  • Manual de Delphi en PDF
    delphi_pdf.zip  (3009)
  • Evangelio del Perl
    Evangelio_del_perl.pdf  (2822)
  • Excel Simpsons
    Excel Simpsons  (3008)
  • . . .

    ltimos comentarios

  • 660 - Anonimo: jghfuioijjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj :push:
  • 768 - : me encantan los emos y quisiera ser uno y tengo...
  • 768 - Anonimo: hola no conosco mucho esta pagina pero deve de estas...
  • 859 - Bertomania: Muchas Gracias. Sirve para Mucho!!
  • 771 - Anonimo: Muchas gracias por el listado, tenia varios minutos buscando America/Santo_Domingo...
  • 660 - Anonimo: :OO
  • . . .

    Proyectos Online

  • Saiyine Store
  • Kunowalls!!!
  • Fondos de pantalla
  • Picaday: imagenes sexys o chocantes.
  • Scarlett: fotos de Scarlett Johansson
  • WhatsmyIP: obtener tu IP pública
  • Uma Thurman: galeria de Uma Thurman
  • FunPics: imagenes graciosas
  • . . .

    Blogs

  • Por lo que más querais, no entreis a estos: Tapanez, Yhandros, Onez.

  • Otros en español: El Mundo Today, La libreta de Van Gaal, Chavalina, Kirai, Mundo Geek, Microsiervos.

  • Mis lecturas en guiri: Michael Yon, Coding Horror, YCombinator news, MySQL Performance, Slashdot.

    . . .
  • Utilidades

  •  Coral  (1196), cacheando webs
  •  Spam.la  (1431), correo de usar y tirar
  •  Mailinator  (1356), correo de usar y tirar
  •  Bug me not  (1219), absurdos registros di NO
  •  Trashmail  (1251), correo de usar y tirar

    . . .

  • Saipuntos

    Jomer: 2
    Yhandros: 1
    Cheimy: 1

    . . .

    Busquedas


    Varios ejemplos de lo que buscaban visitantes recientes:

    . . .

    Página web ©2001-2010 Saiyine generada en s, con 4639796 visitas en total, hoy (de un total de 0 previstas).

    . . .