Ver Mensaje Individual
  #4  
Antiguo 21-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
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.

Con respecto a ese código no sé ya que hay muchos factores involucrados que pueden estar provocando el fallo.

Pero para que realizes la prueba, te pongo un procedimiento que llama a la función TomarNombre utilizando un TOpenDialog y realiza correctamente lo que buscabas.
Código Delphi [-]
...
implementation

uses StrUtils;

procedure TomarNombre(Nombre: string; var Nuevo: string);
var
  Num: Integer;
  Ext: string;
begin
  if FileExists(Nombre) then
  begin
    Ext := ExtractFileExt(Nombre);
    Nombre := LeftStr(Nombre, Length(Nombre) - Length(Ext));
    if Pos('(', Nombre) = 0 then
    begin
      Num := 1;
      Nombre := Nombre + '(' + IntToStr(Num) + ')' + Ext;
    end
    else
    begin
      Num := StrToInt(Copy(Nombre, Pos('(', Nombre)+1,
        PosEx(')',Nombre, Pos('(', Nombre))-Pos('(', Nombre)-1));
      Inc(Num);
      Nombre := Copy(Nombre,1,Pos('(', Nombre)-1)+'('+IntToStr(Num)+')' + Ext;
    end;
    if FileExists(Nombre) then
      TomarNombre(Nombre, Nombre);
  end;
  Nuevo:= Nombre;
end;

// codigo de prueba
procedure TForm1.Button1Click(Sender: TObject);
var
  Ori, Des: TMemoryStream;
  i: Integer;
  b: Byte;
  Nombre: string;
begin
  if OpenDialog1.Execute then
  begin
    Ori:= TMemoryStream.Create;
    Des:= TMemoryStream.Create;
    try
      Ori.LoadFromFile(OpenDialog1.FileName);
      TomarNombre(OpenDialog1.FileName, Nombre);
      for i:= 0 to Ori.Size - 1 do
      begin
        Ori.Read(b, 1);
        Des.Write(b, 1)
      end;
      Des.SaveToFile(Nombre)
    finally
      Ori.Free;
      Des.Free
    end;
  end;
end;
end.

Un saludo.
__________________
Daniel Didriksen

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