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 :

Dans quoi stocker des lignes de texte ?


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 38
    Points
    38
    Par défaut Dans quoi stocker des lignes de texte ?
    Bonjour.

    Je cherche à lire un fichier texte et à stocker son intégralité dans des variables.

    Le but est par la suite de pouvoir travailler sur ces variables, par exemple:
    - rechercher dans l'intégralité du texte une ligne qui contient la chaîne "age" et copier la chaîne de caractères numériques qui suit.
    - rechercher une ligne qui contient la chaîne "delete" et remplacer l'intégralité des caractères de la ligne par des espaces.
    - pouvoir afficher le 34e caractère de la ligne 14
    - puis finalement écrire le résultat dans un nouveau fichier texte.


    J'ai déjà réussi à lire l'intégralité du fichier et à le stocker dans un tableau d'entiers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tableau[ligne][caractere];
    puis en gros...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while (!feof(file)) 
    {
    tableau[a][b] = fgetc(file);
    b++
    if(tableau[a][b]=='\n')
    a++
    }
    Mais bon je pense que je pars carrément dans la mauvaise direction...
    Donc pour reprendre la question initiale...
    Dans "quoi" et "comment" je peux stocker efficacement des chaînes de caractère?

    Merci beaucoup.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    std::vector pour le tableau et std::string pour les chaînes de caractères.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Merci pour la rapidité de la réponse.

    Sinon j'ai trouvé une autre solution, en C: créér un tableau de char à 3 dimensions [ligne] [mot] [caractère].
    Ca permet par la suite de facilement travailler dessus, et de ne pas perdre la structure du document originale.

    Toute idée d'amélioration est la bienvenue!


    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
    int   i=0;           // numéro de mot dans la ligne
    int   j=0;           // numéro de ligne
    char  tableau[100][100][100];               //  tableau [ligne][mot][caractere]
     
    	while (!feof(file))
    	{
                       fscanf(file, "%256s", tableau[j][i]);                       // on lit un mot et on le place dans le tableau
                       b = fgetc(file);                                            // on lit le caractère suivant...
                       if(b=='\n')                                                 //  si c'est un RETURN...
                       {
                                  j++;                                             // on change de ligne...
                                  i=-1;                                            // et on se remet au début tu tableau
                       }
                       i++;                                                        // si c'est pas un RETURN, on lit le mot suivant qu'on place à la suite
     
    	}

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Ton exercice, tu dois le faire en C ou en C++?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    J'ai le choix, je programme pour le plaisir.

    Je sais programmer en C (niveau très faible).
    Je tente de doucement me mettre au C++, mais je n'y comprend strictement rien. Les ::, std, >>, etc. sont un monde étrange qui me paraît lointain de la syntaxe carrée du C. Alors j'aime bien voir deux équivalents pour comparer.

    Je sais, désolé de poster une solution C dans le forum C++

  6. #6
    Membre averti Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Points : 343
    Points
    343
    Par défaut
    C'est normal que tu galères un peu, le C++ est plus "riche" que le C, plus complet, et donc plus compliqué a apprendre.

    Si vraiment tu tiens a te mettre au C++, je te conseille d'aller faire un tour vers les cours C++ de ce site afin de te donner quelques bases et de débuter en douceur.

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par ickis69 Voir le message
    Je sais, désolé de poster une solution C dans le forum C++
    c'est surtout pour que tu aies les réponses adéquates. Je te conseille de te fixer sur un langage pour faire ton apprentissage et non de picorer un peu de l'un un peu de l'autre.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/02/2013, 16h05
  2. [MySQL] Maniere de stocker des paragraphes de texte
    Par ptilemare dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/05/2011, 14h39
  3. [MySQL] Afficher et stocker des lignes de code
    Par rdams dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/03/2008, 21h15
  4. Quel composant utiliser pour afficher rapidement des lignes de texte?
    Par Rodrigue dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 13/02/2008, 14h45
  5. moyen simple de stocker des bouts de textes ...
    Par blackhorus dans le forum MFC
    Réponses: 3
    Dernier message: 18/10/2005, 17h58

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