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

Algorithmes et structures de données Discussion :

Lecture de fichier - dernière ligne non prise en compte


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Lecture de fichier - dernière ligne non prise en compte
    Bonjour,
    je developpe actuellement un programme en vb qui utilise les fichiers, mais j'ai un problème , lors de la lecture des données du fichier texte (ou sont notées des données) il ne recupere pas la derniere ligne!

    Voici le code source:

    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
     
    Private Sub Form_Initialize() 
    Dim L0 As String 
    Dim L1 As String 
    Dim L2 As String 
    Dim L3 As String 
    Dim L4 As String 
    Dim L5 As String 
    Dim L6 As String 
    Dim wtotalv As Double 
    Dim wtotalg As Double 
    Dim n As String 
    Dim v As String 
    Dim tampon As String 
    Dim prime As Double 
    Dim numfic2 As Integer 
    Dim courant As String 
     
    'Debut de la page html 
    debut = "<HTML><BODY bgcolor=white><FONT COLOR=000000>" 
    L0 = "<CENTER><h3>Etat général</h3></CENTER><br>" 
    L1 = "<DIV align=right><u>Date:" & Date & "</u></div><br><br><table>" 
     
    numfic2 = FreeFile 
    Open "etatville.html" For Output As #numfic2 
    Print #numfic2, debut 
    Print #numfic2, L0 
    Print #numfic2, L1 
    Input #numfic, n, v, tampon 
     
        While Not EOF(numfic) 
            courant = v 
            wtotalv = 0 
            L2 = "<tr><td>Ville: " + v 
            Print #numfic2, L2 
            L3 = "<tr><td>Nom<td>Prime" 
            Print #numfic2, L3 
               While Not EOF(numfic) And (courant = v) 
                    L4 = "<tr><td>" + n + "<td>" + tampon 
                    Print #numfic2, L4 
                    wtotalv = wtotalv + Val(tampon) 
                    Input #numfic, n, v, tampon 
               Wend 
                 L5 = "<tr><td>Total" & wtotalv 
                 wtotalg = wtotalg + Str(wtotalv) 
                 Print #numfic2, L5 
        Wend 
        L6 = "</table>Total général" + Str(wtotalg) 
        Print #numfic2, L6 
        Close #numfic, #numfic2 
     
    End Sub

    Le programme sort un fichier HTML avec les données .

    Ceci est le fichier exemple ou sont les données:

    Alfred,Firminy,5000
    Jean,Paris,7000
    Julien,Saint etienne,1000
    JAnot,Saint etienne,1000
    Maurice,Xoupps,5000
    Le probleme vient que on lis la dernière ligne dans la variable tampon mais ça ne boucles pas sur son traitement car le fait d'avoir lu la dernière ligne met le fichier à EOF, il faut donc déplacer le traitement de la derniere ligne, mais je ne vois pas ou le mettre???

    Merci d'avance


    [Titre modifié par Loulou24, merci d'utiliser des titres explicites à l'avenir]

  2. #2
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    lol

    T'es dans le forum algo, donc mettre un titre probleme d'algo, c'est completement inutile ... surtout quand ensuite tu balances du VB ....

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Effectivement ton titre était peu judicieux, merci de mieux les choisir à l'avenir

    Par contre étant donné que ce sont les VBistes qui t'ont envoyé ici, on ne va pas trop râler pour le choix du forum, même si c'est limite.

    Ton problème me parait simple à résoudre : lis ta ligne (tampon) avant de la traiter, et non à la fin de ta boucle. Non ?

  4. #4
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2004
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2004
    Messages : 137
    Points : 116
    Points
    116
    Par défaut
    Ben, je connais pas VB, mais je connais les fichiers ascii...

    Et ça m'est arrivé bien des fois d'avoir ce genre de problème. Et pourquoi donc ? Parce qu'il n'y a pas de standard pour arrêter un fichier ascii. Il est évident que le code qui lit le fichier ascii cherche une fin de ligne (CR+LF ou le contraire, j'ai oublié) à chaque fois. S'il n'a pas de fin de ligne avant d'arriver à l'EOF deux options s'offrent à lui, soit il laisse tomber purement et simplement les caractères situés après la dernière fin de ligne et avant l'EOF, soit il prend l'EOF comme fin de ligne. A priori, celui qui crée un fichier ascii ne prend pas toujours garde de placer une fin de ligne avant l'EOF, ce qui fait qu'un fichier ascii peut toujours se terminer soit par une ligne complète, soit par une ligne "sans fin". Le programmeur est par conséquent obligé d'envisager les deux cas...Ah, évidemment, ça complique un peu !!!

Discussions similaires

  1. Des lignes non prises en compte dans mon code
    Par Speed41 dans le forum EDI
    Réponses: 3
    Dernier message: 24/03/2014, 11h24
  2. Réponses: 2
    Dernier message: 05/02/2013, 19h53
  3. Lecture de la dernière ligne d'un gros fichier txt
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 16/09/2011, 06h38
  4. Dernière ligne non vide, dans un fichier contenant des plans.
    Par Faelucc dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/07/2010, 13h27
  5. Lecture de la dernière ligne d'un fichier
    Par moreljul dans le forum Scilab
    Réponses: 9
    Dernier message: 18/06/2010, 15h41

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