Modifier une séquence de mots

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 657 fois - Téléchargée 31 fois

Contenu du snippet

il suffit de rentrer une séquence de mots à remplacer dans un fichier texte
le programme ne gere pas les sequence de mots a cheval sur une ligne toutefois.

Source / Exemple :


void modif(FILE *fIn,char nomfic[tmax])
{
 int i,k,l,t;
 char seq1[tlg], mp[tlg];
 char ligne[tlg],debut[tlg],fin[tlg];
 char s[tlg],seq[tlg];

 printf("Sequence a remplacer:");
 gets(seq1);
 printf("\nSequence remplacante (esp a la fin):");
 gets(mp);

 while(fgets(ligne,tlg,fIn))
 {
  strcpy(seq,seq1);
  l=strlen(seq);

  while(strstr(ligne,seq)!=NULL)
   {
    strcpy(s,strstr(ligne,seq));
    t=strlen(s);

    strncpy(fin,s+l+1,t-l);

    strncpy(seq,s,l);
    strcpy(seq,mp);
    l=strlen(seq);

    k=strlen(ligne)-t;
    for(i=0;i<k;i++)debut[i]=ligne[i];
    debut[k]='\0';
    strcat(debut,seq);
    strcat(debut,fin);

    strcpy(ligne,debut);
    strcpy(seq,seq1);
    l=strlen(seq);
   }
   insere_liste(ligne);
 }
   affiche_liste("tamp.txt");
   fclose(fIn);
   remove(nomfic);

   copie("tamp.txt",nomfic);
   remove("tamp.txt");
   printf("\nModification sequence effectuee!");
}

Conclusion :


il manque (je viens de m en apercevoir), les fonctions insere_liste et affiche_liste mais le gros du programme pour le remplacement est là;
neanmoins je peux les mettre par la suite si nécessaire.

A voir également

Ajouter un commentaire Commentaires
Messages postés
34
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
18 mai 2005

Ok,merci.
J'avais compris juste après le commentaire que j'avais envoyer.
La prochaine fois j'attenderai, mais merci quand meme.
;-)
Messages postés
37
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
13 avril 2006

tu peux mettre par exemple:
#define tlg 100

c est une taille max quand tu définis un tableau (entre autres)
je pense que ca répond a ta question

pour ce qui est du 'strncpy(fin,s+l+1,t-l);'
prend une sequence de mots:
"je n'aime pas le C" (par ex)
que tu veux remplacer dans ton texte par:
"j'adore le C"
c est par la fonction strstr() que cette fonction commence, regarde donc d abord comment elle fonctionne et tu vas sans doute pigé le reste!

sinon demande moi n hésite pas!!
bye
Messages postés
34
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
18 mai 2005

salut,
c'est quoi comme valeur qui viens dans tlg ??????
et pq "strncpy(fin,s+l+1,t-l);", la je ne te suit pas .

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_Pindus)