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 :

Une idée pour un débutant


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut Une idée pour un débutant
    salut encore un 'ti soucis !!
    j'ai un fichier .txt sur mon disque dur qui contient :
    #Vehicule>
    #Avec moteur>
    #Voiture;
    #Camion;
    #Car;
    \;
    #Sans moteur>
    #Velo;
    #Trotinette;
    \;
    \;
    .


    j'arrive a lire le fichier et à l'afficher avec ce code :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include <stdio.h>
    #include <stdlib.h>
    #define fich "H:\\testStage\\exoc.txt";//chemin et nom et du fichier texte à traiter
    
    void main()
     {
        FILE *f_read;
         int c,i = 0,j = 0,k;
         char tab[256];
     
        f_read = fopen("H:\\testStage\\exoc.txt", "r");
         if (!f_read) // test ouverture du fichier 
        {
             printf("Impossible d'ouvrir le fichier\n");
             exit(-1);
         }
     
        /*cette partie affiche aussi le contenu du fichier
        mais ne nous est pas très utile car on veut controler l'affichage*/
        /*while (!feof(f_read))
        putchar(fgetc(f_read));
        printf("\nVOILA LE CONTENU DU FICHIER LU AU DESSUS \n");
        i=0;*/
        // seconde manipulation d'affichage
        while (!feof(f_read))
         {
             c = fgetc(f_read); //ramene un int dans c
            c =(char)c; // cast du int en char afin d'afficher les caractères
            //printf("%c",c); // affiche le contenu du fichier
            tab[i] = c;
             i++; 
         }
     
        /*while (j<i)
        { //tab[j]= (char) tab[j];
            //printf("%c",tab[j]);//affiche aussi le contenu du fichier
            if (tab[j]='#')
                printf("%c",tab[j+1]);
            j++;
        }*/
    
        /*while ((tab[j]!='\\')||(tab[j]=='>'))
        {
            branch[j]= cpt;
            cpt++;
            j++; 
        }*/
    
        for(j=0;j<i;j++)
         { 
             if (tab[j]=='#')
                 tab[j]='\b'; 
             if (tab[j]=='>')
                 tab[j]='\r';
             printf("%c",tab[j]);
         } 
         fclose(f_read); // fermeture du fichier traité
    }

    Je souhaite maintenant faire un affichage qui devra se faire sous forme arborescentealphabétique.
    (à l’aide de tabulation) et trié par ordre Début de ligne : # (caractère diese)
    Fin de ligne : ; (caractère point-virgule)
    Début de sous branche : > (caractère superieur à)
    Fin de branche : \ (caractère anti slash)
    Fin de document : .(caractère point)
    cad apres a partir des sous branche
    comme ceci en fonction des caracteres #,;....:
    vehicule
    (tabulation)avec moteur
    .........
    .........
    C'est la que je coince avez vous une piste ou une idée ???

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Désolé mais ton message n'est pas très lisible.

    Pas de balise code, des balises non fermé, une taille un poil trop petite.

    Tu peux arranger tout ca s'il te plait.

  3. #3
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    une taille un poil trop petite.
    Sous FireFox Ctrl+molette souris pour zoomer/dezoomer.

  4. #4
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Citation Envoyé par Skyrunner
    Désolé mais ton message n'est pas très lisible.

    Pas de balise code, des balises non fermé, une taille un poil trop petite.

    Tu peux arranger tout ca s'il te plait.
    ok j'ai retiré les balises genantes.!!!!

  5. #5
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Pourquoi ne pas utiliser une autre structure de données, ou alors changer la tienne pour quelle soit un peu plus compréhensible.

    Sinon tu devrais plutôt mettre tes '\t' dans la boucle qui lit le fichier.

  6. #6
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Citation Envoyé par Mayti4
    Pourquoi ne pas utiliser une autre structure de données, ou alors changer la tienne pour quelle soit un peu plus compréhensible.

    Sinon tu devrais plutôt mettre tes '\t' dans la boucle qui lit le fichier.
    je ne peu pas mettre de \t dans la boucle car si tu relis bien tu verra que les tabulations sont fonction des sous branches.

    cad quand tu rencontre le premier > ya deja une tabulation et ainsi de suite seul les \ les ferme !!! regarde bien la structure du fichier texte ...c'est la mon blocage.
    merci quand meme

  7. #7
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    void print_tab(int num)
    {
        int i = 0;
        for( i; i < num; i++ )
        {
            printf( "\t" );
        }
    }
     
    ...
     
        char c;
        int t = 0;
     
        while ( 1 )
        {
            c = fgetc(f);
     
            if ( c == '.' || c == EOF )
                break;
     
            if ( c == '#' )
            {
                print_tab(t);
     
                while ( 1 )
                {
                    c = fgetc(f);
     
                    if ( c == '>' )
                    {
                        t++;
                        break;
                    }
     
                    if ( c == ';' )
                        break;
     
                    fputchar(c);
                }
     
                fputchar( '\n' );
            }
     
            if ( c == '\\' )
                t--;
        }
    Ce code donne :

    http://img106.imageshack.us/img106/6596/img1tk.jpg

    Tu peux le modifier pour placer les caractères dans une chaînes.

Discussions similaires

  1. Lien pour TELECHARGER une image plutôt que pour l'ouvrir
    Par nabab dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/01/2005, 18h07
  2. Encore une jointure sous Oracle pour la route
    Par ebaynaud dans le forum Langage SQL
    Réponses: 15
    Dernier message: 04/11/2004, 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