begin process at 2012 05 29 12:40:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

modifier un mot dans un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

modifier un mot dans un fichier

jeudi 10 mai 2007 à 16:28:57 | modifier un mot dans un fichier

krusty24

bonjour tout le monde

le but de mon programme est de modifier un mot dans un fichier.

exemple de fichier:
2,3  4,5 6.7  8,9
1.3 2,4  5.7 6,8

par exemple je souhaite remplacer "2,3" par "yep"

voici le code:
int main ()
{   
    FILE *falire, *fcorr; // descripteur de fichier                
    unsigned char cach, cmod, tmp;//pour changer un caractere
    int i=0, j=0, k, espace=0, lgTab, nbBlanc, opt, comp;
    char *nomFic="", *nomFic_corr="";//nom des fichiers
    char *tabCh, *tabRes;//passer des tabulation au espace (et reciproquement)
    char *wach, *wmod, *temp; //pour changer un mot


printf("\nenter the name of the input file (with extension):");
    nomFic=malloc(256*sizeof(char));
    scanf("%s",nomFic);
    falire=fopen(nomFic,"r");
    if (falire==NULL)
    {
        printf("error %s: file not found\n",nomFic);
        system("PAUSE");
        exit(0);
    }
   
    printf("enter the name to create the output file: ");
    nomFic_corr=malloc(256*sizeof(char));
    scanf("%s",nomFic_corr);   
    //ouverture du fichier de sortie
    fcorr=fopen(nomFic_corr,"w");
    if (fcorr==NULL)
    {
        printf("\nerror: cannot create the result file\n");
        system("PAUSE");
        exit(0);
    }
//quelle mot modifier par lequel?
             printf("Which word do you want to change?\n");
            fflush(stdin);
            wach=malloc(256*sizeof(char));
            scanf("%s",wach);  
            fflush(stdin);   
            printf("By which word?\n");
            wmod=malloc(256*sizeof(char));
            scanf("%s",wmod);
           
            //modification des données du fichier
            temp=malloc(256*sizeof(char));
            while (fscanf(falire,"%s",temp)!=EOF)
            {
                comp=strcmp(temp,wach); 
                if (comp==0)
                {
                    fprintf(fcorr,"%s ",wmod);
                }
                else
                {
                    fprintf(fcorr,"%s ",temp);
                }
            }
}

le resultat de cette aplication est le suivant:
yep 4,5 6.7 8,9 1.3 2,4 5.7 6,8

or ce n'est pas exactement se que j'attend car les espace ainsi que les retour a la ligne ne sont pas respecté. Mon probleme est que le fichier d'entré n'a pas un format précis.

voila mon probleme

je remercie d'avance toute personne essayant de m'aider
jeudi 10 mai 2007 à 16:34:31 | Re : modifier un mot dans un fichier

laurent1024

Membre Club
je crois que le fscan ca bouffe le \n de la fin. Soit tu dois faire un tableau avec un case de plus que ce que tu lit et tu le rajoute a la fin, soit utlise la fonction read
++
jeudi 10 mai 2007 à 16:40:27 | Re : modifier un mot dans un fichier

krusty24

decidement laurent tu es partout lol

si j'ai bien compris tu me conseil de faire un tableau de chaine de caractere ou pas ??

pour ce qui est de la fonction read, elle peut s'apliquer sur mon exemple, mais je ne sachant pas vraiment la taille des elements du fichier je ne pense pas que se soit possible.

merci encore un fois
jeudi 10 mai 2007 à 16:44:42 | Re : modifier un mot dans un fichier

laurent1024

Membre Club
le plus simple c'est de remplacer ton   fprintf(fcorr,"%s ", ... ) par   fprintf(fcorr,"%s\n",

par contre je sais pas si ca va marcher a tout le coup.
Pour la fonction read = tu lui demande de lui x octets et elle le met dans le buffer que tu lui passe.
en retour elle te renvoit le nombre qu'alle a réellement lu.  quand elle te renvoit moinsque ce qu'elle devrait c'est que c'etait le dernier morceau.
++
jeudi 10 mai 2007 à 16:50:13 | Re : modifier un mot dans un fichier

krusty24

le probleme, si j'utilise fprintf(fcorr,"%s\n", je vais me retrouver avec un fichier qui ressemblerai a sa
yep
4,5
6.7
8,9
1.3
2,4
5.7
6,8

or sa ne me convient pas non plus (tu va surement penser quelle relou celui la )

et pour se qui est du read si je lui met 3 il va me sortir par exemple 4,5
mais si je me retrouve avec des valeur tel que 3,4583928, sa ne marche plus

je suis vraiment coincer dans la semoule epaisse lol
jeudi 10 mai 2007 à 18:49:08 | Re : modifier un mot dans un fichier

laurent1024

Membre Club
ce que tu peut faire : tu lis une ligne avec fgets (http://www.cplusplus.com/reference/clibrary/cstdio/fgets.html)
apres tu parcours la chaine que tu as trouvé et tu la découpe en prennant les espaces et les tabulations comme caracteres de séparation.
tu compares chaque morceau de chaine avec ta chaine que tu veux remplacer.
et apres tu réécris la ligne (modifié ou non) dans ton fichier de sortie

++




Cette discussion est classée dans : fichier, file, char, nomfic, fcorr


Répondre à ce message

Sujets en rapport avec ce message

Erreurs de compilations bizarres avec Visual C++ 6 [ par VTS_35 ] Bonjour,G encore des problèmes de compilation avec mon programme. Je me suis rendu compte que le programme allait devenir balaise, alors j'ai décidé d Problème copie de fichier.... [ par Clonk ] Bonjour,Je voudrais copier un fichier texte dans mon appli, j'ai fais la fonction suivante://Copie d'un fichier (création du backup)int copier(char * cherchet afficher un ou plusieurs ligne d'une fichier texte . [ par brell ] bon jour! cette fonction a comme parametre fichier contenant les messages et une chaine de caracteres contenant le destinateur. cette fonction permet suppression d'une structure dans un fichier [ par ragon ] bonjour, je souhaite simplement supprimer toute une structure d'un fichier, mais je n'y arrive pas. Voila mon code, j'ai essayé un truc mais ca fonct enregister un fichier depuis les ressources [ par baby3378 ] Bonjour à tous, Voilà, afin de faciliter l'utilisation d'une application j'ai décidé de stocker les images et dll en ressource dans mon application af Problème pour stoker une string dans un char* [ par Faroww ] Salut, Alors voici mon problème j'utilise une OpenFileDialog (Parcourir)pour permette a l'utilisateur de choisir un fichier. Je récupéré le patch du C dup utilisation [ par Tom59247 ] Bonjour à tous ! Je réalise actuellement un petit programme qui me permet de mettre quelques infos dans un fichier txt. Après quelques recherches j' demande d'aide (Gestion des fichiers et structures en C) [ par medsky ] Bonjour, Afin de manipuler les fichiers et les structures en C, On m'a demandé de réalisé une application qui cree un fichier pour saisir les inform Demande l'aide des meilleurs ! ;) [ par jekburn ] Bonjour, Le programme suivant devrait d'en un futur proche sortir et enregistrer toutes les adresses mail existantes. Mais là, la fatigue surement ! Ouvrir le nom d'un fichier dans une chaîne de caractères [ par noname001 ] Bonjour à tous, J'ai un soucis dans le développement d'un programme. En effet, j'ouvre tout d'abord un fichier.txt qui contient toute une liste de no


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales