Hola :D, hoy simplemente vengo a compartir funciones para copiar archivos de diferentes formas en Pascal

#1 con la clase TFileStream copiando el archivo en bloques de 1 KB, funciona con Windows y Linux:

Código: Seleccionar todo

Procedure Copiar(Origen, Destino: String);
  Var
    Archivo1, Archivo2: TFileStream;
    BytesBuffer: Array[0..1024] Of Char;
    Leido: LongInt;

Begin
  Archivo1 := TFileStream.Create(Origen, FmOpenRead);
  Archivo2 := TFileStream.Create(Destino, FmOpenWrite Or FmCreate);
  Repeat
    Leido := Archivo1.Read(BytesBuffer, SizeOf(BytesBuffer));
    Archivo2.Write(BytesBuffer, Leido);
  Until (Leido <> SizeOf(BytesBuffer));
  Archivo1.Free;
  Archivo2.Free;
End;
#2 con las funciones BlockWrite/BlockRead en bloques de 1 KB, funciona para Windows y Linux:

Código: Seleccionar todo

Procedure Copiar(Archivo, Ruta: String);
  Var
    Origen, Destino: File;
    Leido, Escrito: Word;
    Buffer: Array[1..1024] Of Char;
  Begin
    Assign(Origen, Archivo);
    Reset(Origen, 1);
    Assign(Destino, Ruta);
    ReWrite(Destino, 1);
    Repeat
      BlockRead(Origen, Buffer, SizeOf(Buffer), Leido);
      BlockWrite(Destino, Buffer, Leido, Escrito);
    Until (Leido = 0) or (Escrito <> Leido);
    Close(Origen);
    Close(Destino);
  End;
End.
#3 con la API CopyFile, solo funciona en Windows:

Código: Seleccionar todo

CopyFile(PChar(Origen), PChar(Destino), True)
Bueno eso es todo :P, buenas noches
Imagen

"Me saltó el avira cuando estaba mirando la foto de slandg... ¿como puedo modearlo? " - Skillmax
Ok... entonces no les gusta Pascal? , miren yo lo unico que pido es por lo menos un gracias si no con que motivacion voy a seguir aportando y no solo me pasa esto cuando publico cosas que tengan que ver con Pascal, me pasa con todo incluyendo los sources que aveces publico.
bueno eso es todo, no tienen que comentar solo queria expresarme xD
Imagen

"Me saltó el avira cuando estaba mirando la foto de slandg... ¿como puedo modearlo? " - Skillmax
La motivacion es importante pero no hay que esperar nada acambio, aportemos por gusto no por agradecimientos, es mi opinion, yo no comente porque de pascal no se ni como declarar una variable entonces no vaya a meter la pata
//mHmm..
Buenos dias, Me parece muy importante cada aporte... los felicito a todos... actualmente tengo un asunto que resolver y por eso me aboco a ustedes para buscar su apoyo.
Ustedes pordian apoyarme en crear un script que busque archivos por extensión ( por ejemplo *.pdf), para luego crear una copia de cada uno y pegarlos en un directorio.
Responder

Volver a “Otros lenguajes”