Saiyine
Punto Com

Procedimiento que compara dos ficheros del disco

0000-00-00 00:00:00

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

Rollos antiguos

0000-00-00 00:00:00 - Pasar numeros de binario, hexadecimal, etc a decimal.

0000-00-00 00:00:00 - Parchear un fichero (cambiar un byte cualquiera de un fichero).

0000-00-00 00:00:00 - Operaciones variadas con cadenas.

0000-00-00 00:00:00 - Obtener un nombre para ficheros temporales que no coincida con ninguno que haya en el directorio.

0000-00-00 00:00:00 - Obtener la version del windows que se esta usando.

Saiyine

Selfie of meHi! Welcome to Saiyine Punto Com where I talk about anything that goes through my mind!

Puedo prometer y prometo que a la mayor brevedad aquí irá un menú o algo asín.