Ver Mensaje Individual
  #4  
Antiguo 20-05-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si te entendí bién, supongo que este ejemplo te servirá de guía:
Código Delphi [-]
...
implementation 

const
  FNAME = 'C:\Temp\notepad.exe'; // copia de C:\windows\notepad.exe

var
  OriginalString: string;

function ChangeChain(AFileName, Chain: string): string;
var
  Stream: TFileStream;
  sz   : Integer;
begin
  sz := Length(Chain);
  SetLength(Result, sz);
  Stream := TFileStream.Create(AFileName, fmOpenRead);
  try
    Stream.Position := 0;
    Stream.Read(Pointer(Result)^, sz);
  finally
    Stream.Free;
  end;
  Stream := TFileStream.Create(AFileName, fmOpenWrite);
  try
    Stream.Position := 0;
    Stream.Write(Pointer(Chain)^, sz);
  finally
    Stream.Free;
  end;
end;

// Corromper el archivo 
procedure TForm1.btChangeClick(Sender: TObject);
begin
  OriginalString := ChangeChain(FNAME,
    '012345678901234567890123456789012345678901234567890123456789'+ // cualquier valor
    '012345678901234567890123456789012345678901234567890123456789');
   // luego de aquí no podrás ejecutar "c:\temp\notepad.exe"
end;

// Restaurarlo
procedure TForm1.btRestoreClick(Sender: TObject);
begin
  ChangeChain(FNAME, OriginalString);
  // luego de aquí podras ejecutar "c:\temp\notepad.exe"
end;

end.
Para que sea mas funcional, a diferencia del ejemplo, deberías almacenar la cadena que corrompe el archivo en un medio perdurable, de modo que puedas recuperarla luego.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita