|
|
|
|
Bonjour,
alors, je suis pas un initié mais j'essaye de faire un petit prog simple, un genre de xcopy, j'en suis encore loin, pour le moment j'ai juste fé qqchose de tres basique:
int main(void) {
char *src,*dest; //chaine pour set les chemins de fichier..
FILE *s,*d;//pointeurs sur les fichier pour les fonction f...
src = "H:\\source.mp3";//fichier source
dest = "F:\\Dest.mp3";//fichier de destination
s = fopen(src,"rb");//ouverture des 2 fichiers
d = fopen(dest,"wb");
if (s == NULL || d == NULL) { // verif d'erreur d'ouverture
cout << "Erreur d'ouverture de fichier...";
return 0;
}
else {
char *r; unsigned int t,i = 0;
r = (char*) malloc(1);
while (1) { //boucle pour lire le fichier byte par byte et le copier
i++;
t = GetTickCount();
fread(r,1,1,s);
if (ferror(s)) {
*r = '0';
printf("ReadError... Pos: %u Tps: %u ms\n",i,GetTickCount() - t);
}
fwrite(r,1,1,d);
if (feof(s)) break;
}
fclose(s); fclose(d); free(r);
return 0;
}
}
Vu que tu as deco, j'ai penser a faire une recherche dans les bibliotheques pour voir si ya pas une histoire de timeout.
|
Bonjour !
src = "H:\\source.mp3"; a éviter absolument avec les chaines de caractères cela de marche que lors de la déclaration de la chaine et ça limite la taille de la chaine à ce qui a été mis dedans au départ ==>pas réutilisable utiliser plutôt strcpy(destination, source); on peut aussi par exemple déclarer src comme suit : char src[100]; ce qui lui alloue un espace capable de contenir 99 caractères pas besoin de faire free(src) à la fin. fread(r,1,1,s); fwrite(r,1,1,d); on utilise généralement ces fonctions avec des structures dont on connait la taille. pour les caractères, il est plus simple d'utiliser en lecture : r[index]=fgetc(s); en écriture : fputc(r[index], d); où index est un entier qui incrémente dans une boucle tant que !feof(s); cordialement, et bon courage ¤ |
Voilà pour les bases.
|