Archivos secuenciales copia de un .exe

Iniciado por Wolfman19951, 4 Agosto 2016, 00:10 AM

0 Miembros y 1 Visitante están viendo este tema.

Wolfman19951

Me están pidiendo que utilice la copia de contenido para copiar un archivo .exe con archivos secuenciales para luego comparar el tamaño pero no se me ocurre cómo implementarlo. alguna idea?

sé copiar archivos de texto, pero el problema me pide copiar un archivo .exe cosa que se me hace extraña y me enrreda


PD: Usando la libreria fstream.

AlbertoBSD

#1
Es lo mismo que escribir cualquier archivo de texto solo que ahora el buffer es binario. Es facil de realizar con stdio.hy deberia de ser mas facil con esa libreria que dices ya que casi todas las cosas estan mas implementadas y mas sencillas.

He aqui un link:

http://stackoverflow.com/questions/12997131/stdfstream-buffering-vs-manual-buffering-why-10x-gain-with-manual-buffering

Saludos.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Wolfman19951

#2
Cita de: AlbertoBSD en  4 Agosto 2016, 01:18 AM
Es lo mismo que escribir cualquier archivo de texto solo que ahora el buffer es binario. Es facil de realizar con stdio.hy deberia de ser mas facil con esa libreria que dices ya que casi todas las cosas estan mas implementadas y mas sencillas.

He aqui un link:

http://stackoverflow.com/questions/12997131/stdfstream-buffering-vs-manual-buffering-why-10x-gain-with-manual-buffering

Saludos.

Hola, logré hacer la copia mediante archivos secuenciales, pero ahora tengo otro problema... La copia se genera con unos pocos bytes más que el archivo original. Por ejemplo, hago una copia de un .txt que pesa 200 bytes, la copia vale 204 bytes, por ejemplo. Supongo que es porque el cursor al llegar al final de archivo deja un espacio en blanco, acá dejo mi código:

Código (cpp) [Seleccionar]
void CopiaImagenSec(){
char line[255];
ifstream origen("codigo.txt" , ios::in);
ofstream destino("copiacodigo.txt" , ios::out);

if(!origen.fail() == 1 && (!destino.fail() == 1)){
if(!origen.eof()){
while(!origen.eof()){
origen.getline(line, 255);
destino<<line<<endl;
}
}
}

origen.close();
destino.close();
}

AlbertoBSD

Tal vez no Limpiaste el buffer "line" y tenia algo de basura.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW