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 :

extraction de données d'un fichier txt


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut extraction de données d'un fichier txt
    Bonjour,
    je suis débutant en programmation et on m'a confié la réalisation d'un programme sur vb6 qui doit gérer plusieurs appareils de mesure.
    Je bloque désormais sur la lecture d'une chaine de caractéres.
    En effet, je dois programmer une alimentation a partir de valeurs qui se trouvent dans un fichier texte. Je suis assez bien avancé cependant j'aimerais pouvoir attribuer les valeurs aux variables... Je fouine depuis déjà plusieurs jours sur le net a la recherche d'indices sans grand succés.

    Voilà ce qu'on peut trouver dans le fichier texte :
    Lambda-GEN-600-2-6|06|270.0|2.000
    (06 correspond a l'adresse n, 270.0 à la tension U et 2.000 au courant I)


    Et voici quelques parties de 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
     
    Private Sub LireFicConfig(ByVal nomfic As String)
        Dim ts As TextStream
        Dim buf As String
        Dim tabbuf() As String
        'vérif
        '...
        'Ouverture du fichier en lecture
        Set ts = fso.OpenTextFile(nomfic, ForReading)
        'Boucle jusqu'à la fin du fichier 
        Do Until ts.AtEndOfStream
               buf = ts.ReadLine
               'Tableau qui contient la ligne
               tabbuf() = Split(buf, "|")
        Select Case tabbuf(0)
            Case "Lambda-GEN-600-2-6"
        Loop
        'Fermeture du fichier
        Close n
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Configurer_Lambda()
     
        Set Lambda = New LambdaGen600_2_6
     
        If Lambda.Configurer(MSComm1, strn, strU, strI) = False Then
            MsgBox ("Erreur de configuration sur l'alimentation Lambda")
            Exit Sub
        End If
    End Sub



    ce que l'on peut trouver dans mon module de classe...
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    'Propriétés
     
    'variable privée représentant l'adresse
    Private strn As String
    Property Get n() As String
        n = strn
    End Property
     
    'variable privée représentant la tension
    Private strU As String
    Property Get U() As String
        U = strU
    End Property
     
    'variable privée représentant l'ampérage
    Private strI As String
    Property Get i() As String
        i = strI
    End Property
     
     
    Property Let n(ByVal value As String)
        strn = value
    End Property
     
    Property Let U(ByVal value As String)
        strU = value
    End Property
     
    Property Let i(ByVal value As String)
        strI = value
    End Property
     
     
     
     
     
    Public Function Configurer(ByVal MSC As MSComm, ByVal n As String, ByVal U As String, ByVal i As String) As Boolean
        'adresse 06
        MSC.Output = "ADR " & n & Chr(13)
        'tempo
        If AttendreOK = False Then Configurer = False: Exit Function
        'U
        MSC.Output = "PV " & U & Chr(13)
        'tempo
        If AttendreOK = False Then Configurer = False: Exit Function
        Attendre (1)
        'affichage voltage
        Form1.statutLambda = PV
        MSC.Output = "PV?" & Chr(13)
        'tempo
        If AttendreOK = False Then Configurer = False: Exit Function
        'I
        Attendre (1)
        MSC.Output = "PC " & i & Chr(13)
        'tempo
        If AttendreOK = False Then Configurer = False: Exit Function
        Attendre (1)
        'affichage ampérage
        Form1.statutLambda = PC
        MSC.Output = "PC?" & Chr(13)
        'Fin
        Configurer = True
    End Function

    Si je n'ai pas été assez clair, n'hésitez pas a demander.


    merci d'avance

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Pour commencer, Un Select Case doit se terminer un End Select, si non le programme refusera de s'exécuter. Vois ce code, adapte le à tes besoins

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Select Case tabbuf(0)
            Case "Lambda-GEN-600-2-6"
                     strn = tabbuf(1) 
                     strU = tabbuf(2)
                     strI = tabbuf(3)
                    Set Lambda = New LambdaGen600_2_6
     
                    If Lambda.Configurer(MSComm1, strn, strU, strI) = False Then
                        MsgBox ("Erreur de configuration sur l'alimentation Lambda")
                    End If 
            End Select

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup, ça m'as bien aidé.

    ci-dessous les parties modifiées...

    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
     
    Private Sub LireFicConfig(ByVal nomfic As String)
        Dim ts As TextStream
        Dim buf As String
        'déclaration de 4 variables (0 à 3)
        Dim tabbuf(3) As String
        'vérif
        '...
        'Ouverture du fichier en lecture
        Set ts = fso.OpenTextFile(nomfic, ForReading)
        'Boucle jusqu'à la fin du fichier 
        Do Until ts.AtEndOfStream
               buf = ts.ReadLine
               'Tableau qui contient la ligne
               tabbuf() = Split(buf, "|")
        Select Case tabbuf(0)
            Case "Lambda-GEN-600-2-6"
                Set Lambda = New LambdaGen600_2_6
                Lambda.n = tabbuf(1)
                Lambda.U = tabbuf(2)
                Lambda.i = tabbuf(3)
        End Select
        Loop
        'Fermeture du fichier
        Close n
    End Sub
    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
     
    Private Sub Configurer_Lambda()
        'déclaration de 4 variables (0 à 3)
        Dim tabbuf(3) As String
        Select Case tabbuf(0)
            Case "Lambda-GEN-600-2-6"
                     strn = tabbuf(1)
                     strU = tabbuf(2)
                     strI = tabbuf(3)
        Set Lambda = New LambdaGen600_2_6
            If Lambda.Configurer(MSComm1, strn, strU, strI) = False Then
            MsgBox ("Erreur de configuration sur l'alimentation Lambda")
            Exit Sub
            End If
        End Select
    End Sub
    Le programme me semble au point. Cependant le programme ne fonctionne toujours pas. Ais-je oublié quelquechose?

  4. #4
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Heu, je pense que tu as une erreur de conception
    Ta sub Configurer_Lambda utilise une version locale du tableau tabbuf. Il est donc totalement vide quand tu crée une nouvelle occurence de ton objet lambda. Note egalement que lors de la lecture tu crée egalement une occurence de ton objet lamda. Les deux occurences sont totalement indépendante l'une de l'autre. Un peu comme si tu avais deux controles textbox sur ta feuille, eux aussi sont indépendants l'un de l'autre

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    C'était effectivement ça.
    ça marche du feu de dieu maintenant.
    Encore merci

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

Discussions similaires

  1. Extraction de donnée depuis un fichier .txt
    Par Loupita dans le forum Langage
    Réponses: 2
    Dernier message: 09/04/2014, 14h06
  2. Extraction données complexe dans fichier txt
    Par munity dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/02/2012, 20h19
  3. [XL-2007] Extraction données complexe dans fichier txt
    Par familledacp dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/11/2011, 15h59
  4. extraction de données d'un fichier .txt
    Par maissaab dans le forum Général Python
    Réponses: 1
    Dernier message: 19/02/2011, 13h24
  5. Extraction de données à partir de fichiers txt
    Par rob408231 dans le forum MATLAB
    Réponses: 15
    Dernier message: 13/06/2008, 15h17

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