COPIE DE FICHIER [CODE EN C] [GCC]

Utilisateur anonyme - 12 mai 2002 à 13:04
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 19 mars 2006 à 23:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/9101-copie-de-fichier-code-en-c-gcc

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 mars 2006 à 23:21
Comprendre un code pendant une java, ne doit pas être évident.
Voilà une atténuante pour HIBAO.
cs_fuliculi Messages postés 43 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 3 mai 2010 6
19 mars 2006 à 22:04
Faux, j'indique à fread qu'il peut lire JUSQU'A 1024 bits mais lui me retourne le nombre de bits lus (donc 100 si il n'en reste pas plus). Je récupère cette valeur et je n'enregistre que le nombre de bits restant, et pas 1024 pour le dernier paquet (enfin une chance sur 1024, hein ;)
cs_hibao Messages postés 2 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 3 septembre 2006
19 mars 2006 à 22:00
ton code est un peu faux parce que a chaque fois tu ecris 1024 bits dans le fichier et si il ne te reste que 100 bits dans le fichier de lecture tu va comme meme ecrire 1024 dans ton fichier de destination donc t'aurra pas la bonne taille a la fin
voici un code en java il est aussi tres lent mais il marche
import java.io.*;
public void copier(String chemin_copie) throws Exception{

BufferedReader buffer_r = null;
FileReader file = null;
FileWriter file_copie = null;
BufferedWriter buffer_w = null;


try {
file = new FileReader(this.chemin);
buffer_r = new BufferedReader(file);
file_copie = new FileWriter(chemin_copie);
buffer_w = new BufferedWriter(file_copie);
}
catch (FileNotFoundException excp) {System.out.println("Fichier d'entree introuvable");}
catch (IOException excp) {System.out.println("Fichier de sortie introuvable");}
String ch = null;

do {
try {
ch = buffer_r.readLine();
if (ch != null) {
buffer_w.write(ch);
buffer_w.newLine();
}
}
catch (IOException excp) {System.out.println(excp + " : Probleme copie");}

} while(ch!=null);
buffer_w.close();
}
jprozorback Messages postés 31 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 28 mars 2006
1 nov. 2004 à 17:25
dabort aucune utimité d'inclure <string.h>
le exit(0) et exit(-1) te fait terminer le prog sans avoir fermé les flux.
en plus c'est du C.
cs_fuliculi Messages postés 43 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 3 mai 2010 6
15 juil. 2004 à 09:30
C'est pas plus simple?

#include <stdio.h>

void main(void)
{
FILE *streamOut;
FILE *streamIn;

streamOut = fopen("file.fic", "wt");

streamIn = fopen("file_copy.fic", "rt");

char buffer[1024];
int bytesRead;

do
{
bytesRead = fread(buffer, 1, 1024, streamIn);
fwrite(buffer, 1, bytesRead, streamOut);
}
while(bytesRead==1024);

fclose(streamOut);
fclose(streamIn);
}
lulu316 Messages postés 7 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 13 août 2003
13 août 2003 à 12:17
Serait-il possible dans le meme principe de faire un outil en C cette fois, qui permettrait la copie de fichier en réseau ou l'on pourrait programmer la date et l'heure de la copie désirée ainsi que la source et la ou les detination(s) ?
Ce serait sympa de me tenir au courant car je suis tres interressée
Merci d'avance
Lucie
topinanbourg Messages postés 5 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 10 octobre 2004
12 déc. 2002 à 00:36
perso comme etudiant je trouve ce code simple claire efficace et sans problemme aparents alors merci de ce scource indispensable...
TheLudo2013 Messages postés 77 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 18 octobre 2007
14 nov. 2002 à 04:50
Je tiens a dire par contre que son algorithme de copie est très lents. En plus il y a déja des apis pour copier les fichiers !!!
TheLudo2013 Messages postés 77 Date d'inscription mardi 12 novembre 2002 Statut Membre Dernière intervention 18 octobre 2007
14 nov. 2002 à 04:47
Le pb de rajout d'octet, c'est a cause du mode de lecture/écriture : dans son code il ouvre les fichiers en mode texte, ce qui fait que les octets sont interprétés avant d'être enrgistrer. Certains caractère sont codé sur 2 octets. La solution est simple, il faut ouvir les deux fichiers en binaire.
fds = fopen(argv[1], "rb");
fdd = fopen(argv[2], "wb");
cs_Jo Messages postés 138 Date d'inscription jeudi 24 août 2000 Statut Membre Dernière intervention 6 avril 2002
12 mai 2002 à 13:22
Salut,
Bah je dirai que cela viens de windows, car moi il fonctionne tres bien sous linux
Utilisateur anonyme
12 mai 2002 à 13:04
ne fonctionne pas, il rajoute 2 octets dans le fichier.
Compilé avec GCC sous windows.
Rejoignez-nous