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 :

Position dans un fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 32
    Par défaut Position dans un fichier
    Bonjour, j'ai fait des recherches sur internet, une petite recherche ici, mais je n'ais pas trouvé ce que je voudrais.
    En faite, les fonctions C de "position" dans un fichier, permette de se mettre par exemple a 2 caractères du début. Mais moi j'aimerais me poser sur une en faite.
    Comment se positionner sur une ligne (par exemple la ligne 3 de mon fichier) ?



    ps: le fichier est de la forme : code nom prénom solde

    j'ai testé un truc de ce style:
    on cherche la position que l'on veut
    on fait un sscanf jusqu'a ce qu'on l'ai fait autant de fois que la ligne voulue
    et on écrit le texte a cet endroit


    je pensais que si on faisait un sscanf, le curseur de position dans le fichier se déplacait en meme temps, mais apparement non

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut Re:
    Cette question n'a des sens que si le fichier est de type texte. Pour cela il suffit juste de se placer en début du fichier puis de lire la ligne courante tant qu'on n'est pas à la bonne. Et y a pas 36 solutions.

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 32
    Par défaut
    euh j'ai édité en meme temps que tu as répondu, j'avais essayé de faire ca, peut etre que je m'y suis mal prit. Regarde la fin de mon message ci dessus s'il te plait, j'ai expliqué la démarche que j'ai faite

  4. #4
    Membre expérimenté Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Par défaut
    Pas de solution automatique : il te faut reperer la position du 3eme \n en lisant depuis le début, et te positionner un caractère après.

    Si tu as beaucoup de lignes, qu'elles sont relativement semblables et que tu souhaites fréquemment faire appel a une ligne spécifique (mini BDD par exemple) il y a une autre solution. Elle consiste a avoir des lignes de taille fixe (en completant les lignes avec un caractère de remplissage). Ainsi tu atteints la n-ieme ligne en allant chercher le ((n-1)*taille de la ligne+1)eme caractere

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 32
    Par défaut
    merci, je vais tester ca, je vous tient au courant

  6. #6
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    fgets() te permet de lire une ligne dans un fichier jusqu'au caractère \n. Donc, après 2 fgets, tu seras positionné sur la 3è ligne.

  7. #7
    Membre averti
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 32
    Par défaut
    euh je vais essayer la nouvelle solution ^^ car avec l'autre il m'écrit n'importe quoi, exemple, je selectionne la 6eme ligne, et au lieu de ca, il m'écrit "BONJ" (c'était pour tester) à la 6eme place de ma 2eme ligne ^^

    je test avec fget de suite

  8. #8
    Membre averti
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 32
    Par défaut
    erf la il ne m'écrit meme plus mon "BONJ" pourtant il est cencé le faire, donc j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int j = i;
    char ligne[200];
    while (j !=0){
         fgets(ligne,200,f);
          j--;
    }
    i étant la ligne que je désire atteindre
    f étant mon fichier
    ensuite j'ai fait
    et il ne me l'affiche pas dans mon fichier

  9. #9
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Mais non! On lit une ligne avec fgets() pas avec fscanf()! Si tu veux aller à la ligne trois fais fgets() 2 fois et c'est bon!

    Citation Envoyé par Ksempac
    il te faut reperer la position du 3eme \n en lisant depuis le début, et te positionner un caractère après.
    Qu'est-ce que tu racontes la?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer position dans un fichier
    Par menakikou dans le forum Linux
    Réponses: 12
    Dernier message: 28/03/2012, 10h18
  2. [SAX] Position dans le fichier
    Par snyouf dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 11/09/2008, 15h05
  3. aller à une position précise dans un fichier texte
    Par bassidi meryeme dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2005, 14h57
  4. Réponses: 5
    Dernier message: 20/02/2005, 01h14
  5. [Win32] Position dans un fichier
    Par vecchio dans le forum Windows
    Réponses: 7
    Dernier message: 22/03/2004, 16h47

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