Accueil > Forum > > > > Copie de fichier en append
Copie de fichier en append
samedi 7 mars 2009 à 12:36:40 |
Copie de fichier en append

0x80h4x0r
|
Salut(); Je voudrais coder une simple application de copie de fichier plain text (pas binaire) . Le probleme c'est que je veux copier les fichier en append , copier un fichier a la fin de l'autre sans overwriter le fichier de destination . Si quelqu'un a une solution je suis preneur . J'ai tente un petit "hack" en utilisant ifstream et ofstream , le programme compile mais crash . Je precise que j'ai hardcoder les chemin dans le programme .
|
|
samedi 7 mars 2009 à 13:06:52 |
Re : Copie de fichier en append

0x80h4x0r
|
reSalut (); J'ai trouve la solution a mon probleme . Le code marchais bien , en fait j'ai copier le contenu d'un tableau de char[300] dans un pointeur sur char (char*) et ca a deborder en memoire (buffer overflow) voila un bout du code :
ifstream File(SourceFile); // ouvre le fichier source en lecture if(!File) return false; char FileInput[256]; while (File) { File.getline(FileInput,256); if(File) { ofstream Dest(DestFile); // ouvre le fichier source en ecriture if(!Dest) return false; Dest << FileInput << endl; Dest.close(); } } File.close();
|
|
samedi 7 mars 2009 à 20:08:42 |
Re : Copie de fichier en append

BruNews
|
Réponse acceptée !
Vu que question est mise dans categ Windows, voici le code qui convient. Note que tout fichier est "binaire", autrement dit une simple suite d'octets. Il n'y a que les lib comme stream et autres bidules de ce genre pour induire de faux concepts. HANDLE hsrc, hdst; BYTE buf[1024]; DWORD rw; hsrc = CreateFile(SourceFile, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); if(hsrc == INVALID_HANDLE_VALUE) return; hdst = CreateFile(DestFile, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, 0, 0); if(hdst == INVALID_HANDLE_VALUE) goto closeSRC; SetFilePointer(hdst, 0, 0, FILE_END); fromSRC: ReadFile(hsrc, buf, 1024, &rw, 0); if(!rw) goto closeDST; // TOUT A ETE COPIE, STOP WriteFile(hdst, buf, rw, &rw, 0); goto fromSRC; closeDST: CloseHandle(hdst); closeSRC: CloseHandle(hsrc);
ciao... BruNews, MVP VC++
|
|
dimanche 8 mars 2009 à 10:27:37 |
Re : Copie de fichier en append

0x80h4x0r
|
Merci BruNews !! Mais si les fichiers source et destination existent , Est ce que CreateFile() va overwriter ?
car je devellope une fonction pour mettre a jour un fichier dest a partir d'un fichier source , ca les ouvre et et ca les compare : si égaux return; si fichierDest < fichierSource (ce qui doit etre vrai) on compte les caracteres du fichier dest et on les enleve depuis le debut de la chaine source (vu que source contient ce qui est dans dest en plus d'autres donnees et nous on ne veut que ces autres donnees) et on ecrit sourceApresModification en append avec la fonction precedente .
Je n'est pas encore tester cet algo , mais je crois que ca marchera . Ya t'il plus simple ??
|
|
dimanche 8 mars 2009 à 10:34:29 |
Re : Copie de fichier en append

BruNews
|
plus simple ??? regarde la boucle: fromSRC: ReadFile(hsrc, buf, 1024, &rw, 0); if(!rw) goto closeDST; // TOUT A ETE COPIE, STOP WriteFile(hdst, buf, rw, &rw, 0); goto fromSRC; ici, plus simple tu meurs...
CreateFile comme toute autre fonction API fait simplement ce qu'on lui demande, suffit d'envoyer les bons paramètres. Tu as les noms de fonction dans l'exemple, regarde MSDN pour détails.
ciao... BruNews, MVP VC++
|
|
dimanche 8 mars 2009 à 12:36:53 |
Re : Copie de fichier en append

0x80h4x0r
|
Je demandais plus simple pour l'algo de comparaison ...
|
|
dimanche 8 mars 2009 à 13:37:05 |
Re : Copie de fichier en append

BruNews
|
Pourquoi toutes ces manips ? suffirait de vider source dès que copie finie et il n'y aurait plus rien à comparer ultérieurement. Pas le droit de faire ça ?
ciao... BruNews, MVP VC++
|
|
dimanche 8 mars 2009 à 14:44:44 |
Re : Copie de fichier en append

0x80h4x0r
|
Merci encore BruNews , j'avais pas penser a ca
|
|
Cette discussion est classée dans : fichier, programme, copie, append, copier
Répondre à ce message
Sujets en rapport avec ce message
copier un fichier ressource lors de l'execution [ par arthuro2001 ]
Je voudrais copier un fichier exe ( ou tout autre type de fichier ) en ressource de mon programme sur la machine executant mon programme afin de pouv
Vitesse de copie [ par Roro8883 ]
Bonjour à tous !Je voudrais savoir qu'elle serait la méthode la plus rapide pour effectuer une copie d'un fichier (relativement gros) : 1) Lir
Comment copier un fichier .H et un fichier.CPP d'un programme à un autre [ par soamie2001 ]
Salut à vous,J'ai ecris un programme x en C++ sous visual studio.net qui comprend des fichiers H et des fichiers CPP.Manitenant j'ecris un programme y
Date de création d'un fichier copié [ par xasm ]
Bonjour, Je desir savoir si on peut connaitre la date de création d'un fichier copier. Voila en fait si je copie un fichier qui date de janvier 2
de C vers C++ ? [ par boualiasma ]
Salut, J'ai crée mon programme C sous Windows avec Visaul Studio 2008. Lorsque j'ajoute un fichier alors je trouve un fichier c++. Mais, je mis par e
tester fichier vide ou non [ par boualiasma ]
Bonjour, J'ai un fichier qui est généré dans le programme. Ce fichier peut être vide ou non. Je voulais tester si le fichier est vide ou non si le f
Stream de fichier [ par warmup1992 ]
Bonjour à tous, je sais pas trop si je suis dans la bonne section mais bhon si je me suis trompé veuillez me pardonner ^^ :) Enfaite je post pour avo
[c]s'est possible un programme comme sa ? [ par CreateurDeBug ]
Bonjour, s'est possible un programme qu'ont luit poserais des questions et il ouvrirais le contenue d'un fichier texte en rapport avec se qu'on à dema
lire un fichier .dat comme input de programme c++ [ par I0o0I ]
Hello, On me dit qu il est possible (en c++) qu un programme: nom01.cpp lise son input depuis un fichier nom02.dat... il suffit d inclure au début d
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|