Ver Mensaje Individual
  #1  
Antiguo 07-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: Dec 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.617
Reputación: 27
dec Va camino a la famadec Va camino a la fama
Comparar dos Streams entre sí y averiguar si son iguales

La siguiente función devuelve "True" si los "Streams" que se pasan como parámetros resultan ser iguales. Esta función la escribió Federico (delphi.com.ar), un compañero de los Foros del ClubDelphi, si no recuerdo mal:

Código Delphi [-]
function CompararStreams(AStream1, AStream2: TStream): boolean;
var
  Buff1, Buff2: Pointer;
  iCount: LongInt;
const
  BUFFER_SIZE = 1024*4;
begin
  if AStream1.Size <> AStream2.Size then
    Result := False
  else
  begin
    Result := True;
    GetMem(Buff1, BUFFER_SIZE);
    GetMem(Buff2, BUFFER_SIZE);
    try
      repeat
        iCount := AStream1.Read(Buff1^, BUFFER_SIZE);
        AStream2.Read(Buff2^, BUFFER_SIZE);
        if not CompareMem(Buff1, Buff2, iCount) then
        begin
          Result := False;
          break;
        end;
      until iCount < BUFFER_SIZE;
    finally
      FreeMem(Buff1);
      FreeMem(Buff2);
    end;
  end;
end;
Responder Con Cita