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

VB 6 et antérieur Discussion :

Probleme lecture fichier acces sequentiel


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 55
    Points
    55
    Par défaut Probleme lecture fichier acces sequentiel
    Bonjour à tous!

    Je me suis lancé il y a peu de temps dans Visual Basic. Aussi je teste un peu toutes les fonctionalités du langage pour developper un peu plus tard une application.
    SAUF que j'ai un petit problème à la lecture d'un fichier à accès séquentiel.
    Voici le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_Load()
    Dim i As Integer
    i = 0
    Open "C:\visual basic\VB98\event memory\fichier.dat" For Input As #1
    Do While Not EOF(1)
    Input #1, evNom, evDate
    monTab(i).Nom = evNom
    monTab(i).date = evDate
    i = i + 1
    Loop
    Close #1
    End Sub
    L'objectif est de placer consécutivement les données dans un tableau de type udt.
    A la compilation on m'affiche "input past end of file" alors que normalement à l'ouverture d'un tel fichier le pointeur est placé au début.

    Merci à celui qui pourra élucider ce mistère.

    Ouar

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Je n'en suis pas sure à 100% mais il me semble que l'eccès séquenteil fonctionne bien avec les fichiers de texte. Si tu as différents types de données dans un même enregistrement, vas-y en accès aléatoire.

    Tu es bien certain que ton fichier est en format de texte? i.e. une linge, un enregistrement ?

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Ce qui est étonnant, c'est que ouar dit: "à la compilation".

    Comme si le compilateur pouvait détecter le contenu du fichier...

    Pour être certain du moment où se passe l'erreur, il faudrait mettre un MsgBox (i) juste après l'Input, par exemple.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Désolé, je me suis mal exprimé, ce n'est pas à la compilation mais à l'execution; j'ai bien fait la distinction, merci.
    Jai alors mis une msgbox(i) pour bien cerner le problème. Il s'en affiche 3, de i=0 à i=2, c'est normal puisque j'ai 3 enregistrements dans mon fichier "fichier.dat" L'erreur "input past end of file" se produit juste après avoir fermé la dernière msgbox.
    Finalement je crois avoir trouvé une solution, je tape "On Error Resume Next"

    N'hésitez pas à me contacter si vous trouvez une méthode moins brutale.
    Merci pour votre aide.

    Ouar

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    oui j'ai la même chose si mon fichier se terminde par une ligne vide !!

    tu pourrai essayer quelque chose dans le genre :

    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
    Sub test()
    Dim i As Integer
    i = 0
    Dim st  As String
    Dim stMemo As String
    Dim tb
    Open "C:\visual basic\VB98\event memory\fichier.dat" For Input As #1
    Do While Not EOF(1)
    Input #1, st ' Lecture ligne
    '.. Traite la ligne dans mon cas séparation par expace ...
     Do While stMemo <> st
      stMemo = st
      st = Replace(st, "  ", " ") ' Remplace les espace en double par un espace
     Loop
    tb = Split(st, " ")
    'On Error GoTo ErreurLect
    If UBound(tb) = 1 Then 4dernier indice 1 d'ou 2 enregistrement
      monTab(i).Nom = tb(0)
      monTab(i).date = tb(1)
    End If
    i = i + 1
    Loop
    Close #1
    End Sub

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Merci beaucoup !
    J'essayerais

    Ouar

Discussions similaires

  1. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46
  2. Probleme lecture fichier
    Par CaptainChoc dans le forum C++
    Réponses: 5
    Dernier message: 06/03/2005, 10h40
  3. [ifstream] pb lecture fichier non sequentielle
    Par bludo dans le forum SL & STL
    Réponses: 3
    Dernier message: 10/02/2005, 21h30
  4. [LG]probleme lecture fichier
    Par yp036871 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2004, 19h22
  5. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 18h53

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