Hi,
Ich versuche in meinem Programm eine Datei stückchenweise zu lesen und dann wieder stückchenweise zu schreiben, aber es klappt irgendwie nicht richtig.
Mache ich irgendetwas dummes falsch ?
int main(int argc, char\* argv[])
{
FILE \*fh\_in;
FILE \*fh\_out;
BYTE Chunk[256];
long filesize;
long chunksize = 256;
long bytesread = 0;
fh\_in = fopen( "Test\_in.mp3", "rb" );
fh\_out = fopen( "Test\_out.mp3", "wb" );
fseek( fh\_in, 0, SEEK\_END );
filesize = ftell(fh\_in);
fseek( fh\_in, 0, SEEK\_SET );
printf("Datei Groesse : %i\n", filesize);
while( fread( Chunk, chunksize, 1, fh\_in ) )
{
bytesread += chunksize;
if( bytesread \> filesize - chunksize )
chunksize = filesize - bytesread;
fwrite( Chunk, chunksize, 1, fh\_out );
}
printf("%i Bytes gelesen\n", bytesread );
printf("Fertig\n");
fclose(fh\_in);
fclose(fh\_out);
return 0;
}
Wenn ich die ganze Datei in einen Buffer auf einmal einlese und dann schreibe, klappt es, aber so wie oben hat die kopierte MP3 eine andere Grösse als die Original Datei…
Gruß,
Marc