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++/CLI Discussion :

Lecture et déplacement dans un fichier


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire informatique
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Lecture et déplacement dans un fichier
    Bonjour,

    J'ai un petit soucie lors de ma lecture de fichier. Je souhaite pouvoir lire un entier dans mon fichier qui se trouve à la fin.
    J'ai donc utilisé la fonction ifstream pour ouvrir le fichier en lecture puis utilisé la fonction seekg() pour pouvoir lire à partir de la fin.
    Mon réel problème est de savoir à partir de où commencer la lecture (soit le premier paramètre de la fonction seekg() avec ios::end en second paramètre).

    Voiçi mon 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
    int main()
    {
            ifstream fichier("CATREL", ios::in );  // on ouvre en lecture
     
     
            if(fichier)  // si l'ouverture a fonctionné
            {
                    int entier1;
                    fichier.seekg(87, ios::end);
     
                    fichier>>entier1;    
                    cout << entier1 << endl;
     
                    fichier.close();
            }
            else
                    cerr << "Impossible d'ouvrir le fichier !" << endl;
     
            system("pause");
            return 0;
    }
    J'ai pris le nombres de caractères en partant de la fin pour premier paramètre de ma fonction seekg() est-ce une erreur?

    J'ai en résultat :
    -858993460 (adresse mémoire?)

    et voici un exemple du fichier à lire :

    0411206 20053EUR2E9250114774662310712 310712PREL. FACTURATION 0000000000816O
    0711206 20053EUR2 92501147746 310712NOUVEAU SOLDE 0000002546949H
    0111206 20053EUR2 99861630874 300712 ** PAS DE MOUVEMENT CE JOUR ** 0000000000000{
    0711206 20053EUR2 99861630874 010812 ------------------------------ 0000000000000{
    La valeur en rouge est celle que je dois récupérer et comparer à la date système -1.

    Merci de vos réponses

    Emilien.

  2. #2
    Membre confirmé

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Points : 597
    Points
    597
    Par défaut
    Je n'ai jamais utilisé cette fonction, mais d'après la doc :

    istream& seekg ( streamoff off, ios_base::seekdir dir );

    off
    Integral value of type streamoff representing the offset to be applied relative to an absolute position specified in the dir parameter.
    dir
    Seeking direction. It is an object of type ios_base::seekdir that specifies an absolute position from where the offset parameter off is applied. It can take any of the following member constant values:
    Donc le premier paramètre est un offset sur le second, ce qui fait dans ton cas.

    Fin + 87

    Je pense que tu cherches plutôt fin - 87.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire informatique
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par manticore Voir le message
    Je n'ai jamais utilisé cette fonction, mais d'après la doc :



    Donc le premier paramètre est un offset sur le second, ce qui fait dans ton cas.

    Fin + 87

    Je pense que tu cherches plutôt fin - 87.

    Bonjour,

    Merci de votre réponse mais mon problème est déjà réglé ! J'avais oublié de passer en résolu.

    Cdt

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

Discussions similaires

  1. Lecture et déplacement dans un fichier
    Par draithor dans le forum C++
    Réponses: 22
    Dernier message: 09/08/2012, 16h23
  2. Réponses: 4
    Dernier message: 19/05/2006, 17h06
  3. lecture d'éléments dans mon fichier
    Par gillou4 dans le forum C
    Réponses: 9
    Dernier message: 23/10/2005, 16h19
  4. Problème lecture de nombre dans un fichier en c++
    Par knecmotet dans le forum C++
    Réponses: 1
    Dernier message: 28/10/2004, 15h48
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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