Accueil > Forum > > > > Petit Bug
Petit Bug
vendredi 12 mars 2004 à 22:51:24 |
Petit Bug

LordBob
|
Bonjour a tous, voici deux fonctions: #include <stdio.h> #include <stdlib.h>
// Variables char SourceFile[1024]; char DestinationFile[1024]; int choice;
// fonction extraction de fichier int extract(char Source[1024], char Destination[1024]) { // variable int c, c_source, flag=1, count=0, count_end=0; FILE *fp_destination; FILE *fp_source; char *begin = "-----FU-FILE-----"; // 15 char *end = "-----FU-FILE-END-----"; // 19 char *tmp; tmp = malloc(20); // ouverture des fichier if((fp_destination = fopen(Destination, "wb")) == NULL) { return 0; } if((fp_source = fopen(Source, "rb")) == NULL) { return 0; }
// ici on va extraire le fichier caché while((c = fgetc(fp_source)) != EOF) { if(count == 15 || count == 16) { if (count != 15) { fputc(c, fp_destination); } else { count++; } } else { if(count <= 15) { if(c == begin[count]) { flag = 0; count++; } else { flag = 0; count = 1; } } } } // on ferme les fichiers fclose(fp_destination); fclose(fp_source); // et libere la memoire free(tmp);
return 1; }
// fonction de l'integration du fichier int integration(char Source[1024], char Destination[1024]) { // variables int c, c_source; FILE *fp_destination; FILE *fp_source; // ouverture des fichiers if((fp_destination = fopen(Destination, "a+b")) == NULL) { return 0; } if((fp_source = fopen(Source, "rb")) == NULL) { return 0; } // on atteint la fin du fichier while((c = fgetc(fp_destination)) != EOF) { } // une fois la fin atteint on copie le fichier dans l'autrz if(feof(fp_destination)) { fputs("----FU-FILE----", fp_destination); while((c_source = fgetc(fp_source)) != EOF) { fputc(c_source, fp_destination); } if(!(feof(fp_source))) { return 0; } //fputs("----FU-FILE-END----", fp_destination); } else { return 0; } // on ferme les fichiers fclose(fp_destination); fclose(fp_source);
return 1; }
// fonction principale du programme int main(int argc, char *argv[]) { int result;
// menu printf("-------------------\n"); printf("Cyber Stegano v1.0 \n"); printf("-------------------\n"); printf("\n\n1 : Integrer un fichier dans un autre.\n"); printf("2 : Extraire un fichier dans un nouveau.\n"); printf("Votre choix : "); scanf("%i", &choice); // ici on va integrer un fichier dans un autre if(choice == 1) { printf("\n\nFichier a integrer : "); scanf("%s", &SourceFile); printf("\nFichier \"recevant\" : "); scanf("%s", &DestinationFile); printf("\n\nEn cours..."); result = integration(SourceFile, DestinationFile);
if(result == 0) { printf("Error !\n\n"); system("PAUSE"); exit(0); }
printf("\n\nOperation is finish !\n\n"); } // ici on va extraire un fichier else if (choice == 2) { printf("\n\nFichier contenant le fichier a extraire : "); scanf("%s", &SourceFile); printf("\nNom du fichier a extraire : "); scanf("%s", &DestinationFile); printf("\n\nEn cours..."); result = extract(SourceFile, DestinationFile); if(result == 0) { printf("Error !\n\n"); exit(0); } printf("\n\nOperation is finish !\n\n"); } else // si aucun choix valide { printf("Error !\n\n"); system("PAUSE"); }
system("PAUSE");
return 0; }
|
la fonction 'intergration', copie un fichier dans un autre (genre de steganographie)... jusque la tout va bien... la fonction 'extract', quand a elle, enleve le fichier contenue dans l'autre fichier (je c, c pas tres clair !!!), mais seulement, le fichier n'est pas identique...il y a des 'trucs' en plus... je n'arrive pas a trouver l'erreur dans le code, quelqu'un peut m'aider ? Bob... "La chance accorde ses faveur aux esprits avertis..."
|
|
vendredi 12 mars 2004 à 23:47:43 |
Re : Petit Bug

BruNews
|
Salut LordBob, le prends pas mal mais ce code ressemble a du VB retranscrit, sera aussi lent. On ne lit ni n'ecrit dans un fichier octet par octet, imagine sur un gros fichier c'est impensable. On ne cherche pas la fin (eof) mais on s'y positionne direct. Si tu vises win32, va voir dans mes sources comment on procede.
Autre truc, ne fais pas tourner le memory manager pour 20 octets (malloc), prends les sur la pile directement (char buf[20]), tu economiseras des centaines de cycles processeurs.
ciao... BruNews, Admin CS, MVP Visual C++
|
|
samedi 13 mars 2004 à 08:24:48 |
Re : Petit Bug

LordBob
|
je ne le prend pas mal, c'est juste le moyen le plus simple que j'ai trouver !!! mais je vais regarder ce que tu me dit. Bob...
"La chance accorde ses faveur aux esprits avertis..."
|
|
dimanche 14 mars 2004 à 20:33:17 |
Re : Petit Bug

LordBob
|
bon je cherche toujours sur mon code, ce qui ne vat pas, bien que j'ai pas petite idée... mais je n'arrive pas à corriger mon erreur... tu pourrais pas m'aider, car ca doit etre simple pour toi !!! Bob...
"La chance accorde ses faveur aux esprits avertis..."
|
|
dimanche 14 mars 2004 à 20:38:18 |
Re : Petit Bug

BruNews
|
Je ne fais que du win32: CreateFile ReadFile WriteFile SetFilePointer SetEndOfFile CloseHandle Voila ce dont je me sers, rien que du direct au systeme.
ciao... BruNews, Admin CS, MVP Visual C++
|
|
dimanche 14 mars 2004 à 20:48:16 |
Re : Petit Bug

LordBob
|
ok, c'est pas grave, vais me debrouiller... merci kan meme !!! Bob...
"La chance accorde ses faveur aux esprits avertis..."
|
|
Cette discussion est classée dans : fichier, source, printf, destination, fp
Répondre à ce message
Sujets en rapport avec ce message
splitter de fichier [ par 24Karas ]
salut à tousEn fait je fais un splitter de fichier mais j'ai un probleme. il me rajoute 1 octet sur la découpe et 1 octet par fichier pour la reconsti
Les fichiers [ par AngeloVivaldi ]
J'utilise la méthode suivante pour copier un fichier vers une destination : FILE * source; FILE * desti; source = fopen(/* blabla */) /* blabla
j'arrive pas a ouvrir un fichier [ par angsthase ]
Ou doit être placé le fichier texte si je veux l'ouvrir? Voici mon code : int main() { FILE *fp = fopen ("fichier.txt","r"); if (fp == NULL)
Lecture de fichier TXT [ par beb30 ]
Voila je souhaite faire un programme en C qui me permette de retrouver une information de type Char rentrée manuellement. Je souhaite aller lire ds un
probleme de if [ par cobra176 ]
bonjour tout le monde j'ai un code qui me permet d'afficher les lignes dans un fichier contenat les mots que j'ai choisit et si il n'y a pas le mot re
Ourvri un fichier sous C via un "drag&drop" de l utilisateur [ par pif56 ]
Bonjour tout le monde,Je suis nouveau sur le forum, mais pas sur le site. Alors aujourd'hui est venu le jour de ma premiere question!Voila, j ecris un
Où est l'abbhération informatique sur ces ***** de pointeurs [ par MasterShadows ]
Salut à tous et à toutes, Je ne sais pas comment j'aurais du nommer le topique mais en fait pouvez vous me dire où est l'abbhération informatique là d
au secours comment utliser openPTC avec visual c++ [ par gasy72 ]
bonjour à l'aide je suis un debutant en C/C++ et j'ai un grave problème devant moien fait ,j'essaye de compiler un code source que j'ai tr
copie de fichier [ par capifique ]
bonjourmon but et de copier le contenu d'un fichier pour le mettre dans un autre fichiermon probleme c'est que ca ne copie que la moitié des donnée.le
Erreur de lecture d'un fichier .txt en C sous Linux [ par Trinity_vv ]
<TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UNSELECTAB
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft 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
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
|