Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2010
MrCuCo MrCuCo is offline
Registrado
 
Registrado: ene 2010
Posts: 6
Poder: 0
MrCuCo Va por buen camino
Ayuda con TFileStream

Ok, tengo este codigo:

Código Delphi [-]
Procedure TForm1.FormCreate(Sender: TObject);
  Var
    Archivo1, Archivo2: TFileStream;
    BytesBuffer: Array[0..1024] Of String;
    I: Integer;

Begin
  Archivo1 := TFileStream.Create('/home/diego/Tux', FmOpenRead);
  Archivo2 := TFileStream.Create('/home/diego/Tux2', FmOpenWrite
    Or FmCreate);
  Repeat
    Archivo1.Read(BytesBuffer, SizeOf(BytesBuffer));
    Archivo2.Write(BytesBuffer, SizeOf(BytesBuffer));
  Until (Archivo2.Size = Archivo1.Size);
  Archivo1.Free;
  Archivo2.Free;
End;

lo que quiero hacer es copiar el archivo "tux" a la misma ruta con el nombre "tux2" en bloques de 1 KB, cuando ejecuto ese codigo el archivo se copia pero el bucle nunca termina y tengo que cerrarlo a la fuerza y al final el archivo "tux2" pesa hasta 700 MB cuando el archivo original pesa 1 MB, lo mas raro es que el archivo "tux2" se ejecuta correctamente
se que puedo copiar de otras formas que si funcionan como por ejemplo:
TFileStream.CopyFrom etc...
pero yo necesito copiar el archivo de esta forma , asi que les agradeceria mucho que me pudieran ayudar.
Gracias
Responder Con Cita
  #2  
Antiguo 13-02-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Yo creo que el problema lo tienes porque el archivo de origen tiene un tamaño que no es divisible por el tamaño del buffer y escribes información basura al final del archivo destino, cuando es que lees menos información de la esperada.
Código Delphi [-]
Var
    ...
    iRead: Longint;
begin
  ...
  repeat
    iRead := Archivo1.Read(BytesBuffer, SizeOf(BytesBuffer));
    Archivo2.Write(BytesBuffer, iRead);
  until (iRead <> SizeOf(BytesBuffer));
  ...

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 13-02-2010
MrCuCo MrCuCo is offline
Registrado
 
Registrado: ene 2010
Posts: 6
Poder: 0
MrCuCo Va por buen camino
Cita:
Empezado por delphi.com.ar Ver Mensaje
Yo creo que el problema lo tienes porque el archivo de origen tiene un tamaño que no es divisible por el tamaño del buffer y escribes información basura al final del archivo destino, cuando es que lees menos información de la esperada.

Saludos!
Amigo!! eres un genio!, me has salvado , muchas muchas gracias, como no pense en eso antes, soy un tonto xD
en serio bro muchas gracias! por ayudar a los que empiezan.
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con TFileStream JF Sebastian OOP 2 14-05-2007 22:10:48
TFileStream jorge_mosquera Varios 1 03-03-2007 16:28:45
Problema con TFileStream pelaorb68 Varios 9 18-10-2006 20:50:45
Uso de TFileStream esocrates Varios 4 09-04-2005 23:47:17
TFileStream doverzhoff Varios 1 25-10-2003 18:49:38


La franja horaria es GMT +2. Ahora son las 16:21:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi