IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Traitement de fichiers


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Points : 23
    Points
    23
    Par défaut Traitement de fichiers
    Bonjour,

    j'ai fichier xhtml et je veux le traiter avec le langage c.le travail demandé est de detecter certains lignes de code apatir de la balise de début et la balise de fin ensuite ecrire ces lignes dans un autre fichier xhtml.je sais pas comment faire ca ?

    merci

  2. #2
    Membre régulier Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Points : 101
    Points
    101
    Par défaut
    J'espère que tu t'y connais un peu en programmation C.
    Donc à partir de ce postulat je te conseillerais d'ouvrir tes fichiers avec la fonction fopen lire avec fgets écrire dans ton deuxième fichier html avec fputs.

    Pour comparer les chaînes de caractères pour trouver tes balises de début et de fin j'utiliserais strncmp ?... il faut tester, regarde les fonctions disponibles dans string.h
    ici http://www.cplusplus.com/reference/clibrary/cstring/
    Ceci dit je ne vois pas l'intérêt de l'exercice... est ce que tu ne devais pas faire un fichier txt à partir d'un fichier html plutôt ?

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Ceci dit je ne vois pas l'intérêt de l'exercice... est ce que tu ne devais pas faire un fichier txt à partir d'un fichier html plutôt ?
    Un fichier html est bien un fichier texte.

    Moi, je propose plutot de lire caractere par caractere avec getchar(). Et rechercher dans le fichier le caractere "<" qui marque le debut d' une balise et le caractere ">" qui marque le fin d' une balise.
    On peut juste recopier le premier mot qui se trouve entre "<" et ">" pour connaitre le type de la balise.

  4. #4
    Membre régulier Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Points : 101
    Points
    101
    Par défaut
    Voilà un code qui marche. A étudier de plus prêt : les caractères accentués .....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    #include <stdio.h>
     
    int main()
    {
        FILE *fichier=NULL, *fichierTxt=NULL;
        int c=0, balise=1;
     
    //sélectionner le texte en dehors des balises
        fichier =fopen("page.html","r");
        fichierTxt=fopen("page.txt","w");
        if (fichier==NULL) perror ("Erreur d'ouverture de fichier");
        else
        {
         do {
                //lire le caractère
                c = fgetc (fichier);
                //tester le caractère
                if(c=='<') balise=1;
                if(c=='>') balise=0;
                //Enregistrer le caractère testé dans le nouveau fichier
                if(balise==0 && c!='<' && c!='>')
                {
                     printf("%c",c); //test en console
                     fputc ( c ,fichierTxt );
                }
            } while (c != EOF);//jusqu'à la fin du fichier
     
        fclose (fichier);
        fclose (fichierTxt);
        }
     
        return 0;
    }
    Il suffisait d'aller voir l'exemple de la fonction fgetc du lien que je t'ai donné pour quasiment résoudre ton problème.
    http://www.cplusplus.com/reference/c...dio/fgetc.html

  5. #5
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Tout dépends du processing que tu as a faire...

    Un parsing XML/XHTML n'est pas aussi simple que ca...

    Pourquoi n'utiliserais tu pas un parseur xml comme Expat ?
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

Discussions similaires

  1. [Traitement de fichiers] substitutions
    Par david_m dans le forum Langage
    Réponses: 3
    Dernier message: 04/01/2006, 10h27
  2. traitement de fichier
    Par loic_86 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/11/2005, 18h56
  3. Réponses: 1
    Dernier message: 24/07/2005, 23h25
  4. TRaitement de fichier avec PERL
    Par Dr_GonZO dans le forum Langage
    Réponses: 4
    Dernier message: 22/07/2005, 13h38
  5. traitement de fichier XML dans une Tache planifiée
    Par marivi dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 21/06/2005, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo