/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Kopier filer
Fra : Martin Persson


Dato : 12-01-03 00:27

Hej NG

Jeg prøver at kopiere en mp3 fil fra et drev til et andet på følgende
måde:

ifstream in(file, ios::binary);
ofstream out(dest, ios::binary);
char buffer;
   while(in)
   {
   in >> buffer;
      if(in) out << buffer;
   }

Umiddelbar bliver filen kopieret, men den kan bare ikke afspilles.

Er der en forklaring på dette og hvordan skal man ellers kopiere en
mp3 fil.

VH Martin

 
 
Martin Moller Peders~ (12-01-2003)
Kommentar
Fra : Martin Moller Peders~


Dato : 12-01-03 13:55

In <ar912vsbvh0rgcouial59or3auo625s632@4ax.com> Martin Persson <dis-mp@get2net.dk> writes:

>Hej NG

>Jeg prøver at kopiere en mp3 fil fra et drev til et andet på følgende
>måde:

>ifstream in(file, ios::binary);
>ofstream out(dest, ios::binary);
>char buffer;
>   while(in)
>   {
>   in >> buffer;
>      if(in) out << buffer;
>   }

>Umiddelbar bliver filen kopieret, men den kan bare ikke afspilles.

Maaske bliver filen ikke flush'et, saa de sidste par bytes mangler.
Proev at checke at laengden af kopien er lig laengden af original filen.

/Martin M. Pedersen

--
Martin M. Pedersen
"*Dansk Folkeparti*, nazistisk orienteret dansk parti
1941-1945, grundlagt af Svend E. Johansen og Th.M. Andersen"


Martin Persson (12-01-2003)
Kommentar
Fra : Martin Persson


Dato : 12-01-03 17:33

Tak for svaret. Jeg har i mellemtiden brugt denne metode

FILE *in = fopen(file, "rb");
FILE *out = fopen(dest, "wb");

char buffer[1];

   while(!feof(in))
   {
   fread(buffer,1,1,in);
   if(!feof(in))
   fwrite(buffer,1,1,out);
   }

fclose(in);
fclose(out);

og det virker perfekt.


Hilsen Martin      

Kent Friis (12-01-2003)
Kommentar
Fra : Kent Friis


Dato : 12-01-03 18:50

Den Sun, 12 Jan 2003 17:33:00 +0100 skrev Martin Persson:
>Tak for svaret. Jeg har i mellemtiden brugt denne metode
>
>FILE *in = fopen(file, "rb");
>FILE *out = fopen(dest, "wb");
>
>char buffer[1];
>
>   while(!feof(in))
>   {
>   fread(buffer,1,1,in);
>   if(!feof(in))
>   fwrite(buffer,1,1,out);
>   }
>
>fclose(in);
>fclose(out);
>
>og det virker perfekt.

Perfekt er nok så meget sagt - du kan sætte læsehastigheden op (afhængig
af hvor intelligent din fread() er) ved at skifte 1 ud med fx 2048 eller
4096.

Mvh
Kent
--
You haven't seen _multitasking_ until you've seen Railroad
Tycoon II and Unreal Tournament run side by side

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste