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 :

[VB6]XML Création de fichier et récupération de données


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut [VB6]XML Création de fichier et récupération de données
    Bonjour à vous, je viens vous demander de l'aide, puisque je commence juste juste, le VB et je dois dire que je suis un peu perdu, et je n'ai trouvé ni dans les sources, ni la FAQ, ou la recherche avancée, de quoi me guider pour mes besoins, d'où ma démarche envers vous.

    Voilà, ce que je souhaiterais faire, c'est lorsque je clique sur un bouton, cela va me chercher les informations qui sont ici par exemple :
    http://folding.extremeoverclocking.com/xml/user_summary.php?u=176736
    Et ensuite m'enregistrer tout cela dans un fichier xml puisque c'est du xml, afin d'avoir une copie en local pour pouvoir travailler dessus ensuite.

    Et fois ce fichier récupérer ce fichier, je souhaiterais récupérer dedans par exemple les données ce trouvant entre les différentes balises comme <Points></Points> .... et mettre chacune de ces données dans un label.

    Voilà ce que je souhaite faire, je pense que cela doit être assez simple mais je n'ai vraiment aucune idée de comment faire surtout que je n'ai pas encore tellement développé en VB

    Si vous avez des questions, n'hésitez pas. Merci par avance de vos réponses.

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    je pense que cela doit être assez simple
    Non, ce n'est pas simple du tout, surtout en ce qui concerne l'utilisation des balises !
    surtout que je n'ai pas encore tellement développé en VB
    et
    puisque je commence juste juste, le VB
    Encore moins simple, alors !
    Et... que sais-tu déjà faire de plus simple ou de moins compliqué avec VB ?
    La réponse à cette question est importante car elle permettra de savoir comment t'orienter et s'il est déjà possible ou non de t'orienter

  3. #3
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Bonjour, pour les balises, je pensais que l'on pouvait faire cela en faisant une recherche dans le fichier à <Point>par exemple et que l'on mette dans une variable, tout ce qui est entre <Point> et </Points> en disant le début et la fin de chaine grace à ces balises, et que l'on pourrait faire un masqueage ensuite pour extraire juste la donnée entre balise.

    Sinon ce que je sais faire à proprement dis en VB, heu rien, ou pas grand chose , enfaite, j'ai récupéré le développement d'une apllication qui me tiens bien à coeur, et ce que je souhaite faire permettrait d'optimiser grandement cette application, qui est trop lourde pour les besoins, car là en faisant ainsi, je récupére un fichier de 36 lignes, et avant on récupéré un fichier de 5046, donc temps de téléchargement et ensuite de tri, sera beaucoup plus rapide. Et pour moi le fait que cela soit en xml avec ces balises, je pensais que cela simplifirais le tri et recherche de données par rapport a un fichier html comme c'est le cas actuellement. Mais je ne peux pas trop repartir de la version actuelle, car cela est assez complexe pour moi, et je ne comprends pas la démarche, de plus j'ai aucun commentaire dans la source pour comprendre la logique de l'ancien développeur.

    Et sinon auparavant, j'ai fais dans mon bts 2 ans de c++ avec builder. Donc j'arrive à comprendre le code existant ou à m'adapter, mais pas toujours

    Mais sinon si cela est trop complexe à faire dans son intégralité, on peut peut être y aller étape par étape, cela me permettra surement de comprendre. Car c'est vrai que même récupérer le fichier et l'enregistrer avec un nom souhaité avec l'extension voulu, je ne sais pas faire. Là cela fonctionne avec l'ancienne partie en changeant l'url récupérer, mais cela est mis dans un txt et non un fichier xml et de plus je ne vois pas dans la source, ou l'on indique que l'on passe ce fichier récupéré donc le fichier txt

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    batmat86, tu m'es très sympathique et je salue tes ambitions mais là, vois-tu, c'est vraiment lourd pour un début
    Une idéé :
    si tu es très à l'aise avec C++ : une bonne dll appelée depuis VB pour récupérer tes données... (ce devrait être pas mal et à la portée de ce que tu sais déjà faire, non ?) :

  5. #5
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par jmfmarques
    si tu es très à l'aise avec C++


    Très à l'aise, non faut pas pousser non plus, la preuve, je ne compte pas programmé dans ma vie professionnel, je suis en train de monter ma boite de dépannage informatique à domicile, donc plus de programmation, à part peut être juste pour me faire un logiciel pour gérer mes clients et factures, mais cela je verrais en temps et en heure.

    Donc on va dire que j'avais un niveau moyen en programmation c++, c'est pas mon point fort en informatique.

    Sinon juste déjà comprendre la démarche de récupération du fichier, et le stocker sur le pc avec le nom et extension choisi, sa serait déjà pas mal pour commencer. Même si c'est vrai que la récupération des données sera utile par la suite, mais bon, faut bien avancer petit à petit.

  6. #6
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    c'est surement le plus compliqué... par contre, c'est dans la

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    faut bien avancer petit à petit.
    En effet...
    Et le début, je le crains, n'est pas ailleurs qu'au début !
    Tu ne pourras jamais brûler certaines étapes absolument nécessaires

  8. #8
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Pour récupérer des infos à partir d'une URL :

    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
     
    Private Sub Form_Load()
    Dim strPage, strOrdrenummer, strURL As String
      'On Error Resume Next
     
      strOrdrenummer = 2500 '(txtOrdrenummer.Text)
      strURL = "http://www.codeguru.com/" 'as an example
    strURL = "http://www.allocine.fr/recherche/?motcle=shining" '&f=3&rub=0"
     
      'strURL = "http://www.bnf.fr/images/" 'sartreacceuil.jpg"
      strPage = Inet1.OpenURL(strURL, icString)
     
      Do While Inet1.StillExecuting
     
            DoEvents
            Loop
     
      txtNumberOfImages.Text = GetRank(strPage, "<tr><td>Total</td><td>", "</td></tr>")
    End Sub
    Private Function GetRank(strPage, strPrePat, strPostPat As String) As String
      Dim iStart, iEnd As Integer
      Dim strIn, strOut As String
     
      GetRank = ""
      iStart = InStr(1, strPage, strPrePat) ' find first pattern
      If iStart = 0 Then
        iStart = iStart + Len(strPrePat)
        iEnd = InStr(iStart, strPage, strPostPat) ' second
        If iEnd <> 0 Then
          strIn = Mid(strPage, iStart, iEnd - iStart)
          strOut = ""
          For iStart = 1 To Len(strIn) ' strip out control chars
            If Mid(strIn, iStart, 1) < " " Then
              strOut = strOut & " "   ' add a blank instead
            Else
              strOut = strOut & Mid(strIn, iStart, 1)
            End If
          Next iStart
        GetRank = Trim(strOut)    ' return extracted value
        End If
      End If
    End Function

  9. #9
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Actuellement la récupération du fichier ce fait de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    html_stat_team = frm_stat.transfert.OpenURL("http://folding.extremeoverclocking.com/xml/user_summary.php?u=176736")
    Mais après, je n'arrive pas à savoir comment c'est mis dans le fichier txt après cette réception, et de plus je pense qu'il serait mieux de l'enregistrer en xml vu que c'est du xml.

    Sinon pour la faq je l'ai regardé, j'ai même trouvé ceci : http://vb.developpez.com/faq/?page=Routines#lirexml

    Mais je ne vois pas comment l'appliquer pour moi

  10. #10
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    C'est encore moi, j'ai beau cherché, je séche ou cela plante et la FAQ parle que le download à partir de FTP et non HTTP.

    Donc comment faire pour prendre ce fichier : http://folding.extremeoverclocking.com/xml/user_summary.php?u=176736

    Et ensuite le mettre dans un fichier nommé test.xml dans le dossier d'installation du logiciel par exemple ??

    Et ensuite, ce message de la faq : http://vb.developpez.com/faq/?page=Routines#lirexml

    je souhaiterais savoir comment cela fonctionne, car j'ai du mal à voir dans ce code comment récupéré les données de ce fichier xml bien qu'il doit être lu

    Désolé d'être si novice

    [edit] Comme dans la faq, je vois comment savoir si un fichier existe, comment le copier, le déplacer à la corbeille ... mais je ne vois pas comment créer un fichier

  11. #11
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Bon, et bien suite à des conseils, je reviens pour vous demandez de l'aide sur ce que j'ai actuellement.

    Voilà par exemple ce que j'ai en 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
    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
    Public Sub maj_stat_team(si_attente As Boolean)
    Dim html_stat_team As String
    Dim url_temp As String
        dates = Format(Now, "dd/mm/yyyy hh:mm:ss")
        If (frm_stat.label_date_maj_team.Caption = "00/00/0000 00:00:00") Or (StrComp(Mid(dates, 1, 10), Mid(frm_stat.label_date_maj_team.Caption, 1, 10)) <> 0) Or ((StrComp(Mid(dates, 1, 10), Mid(frm_stat.label_date_maj_team.Caption, 1, 10))) = 0 And (Abs(DateDiff("s", Mid(dates, 12, 8), Mid(frm_stat.label_date_maj_team.Caption, 12, 8))) > 43200)) Or GetFileExist(App.Path & "\" & "page_team.txt") = False Then
            'Ligne d'origine
            'html_stat_team = frm_stat.transfert.OpenURL("http://vspx27.stanford.edu/teamstats/team" & frm_stat.txt_equipe & ".html")
            html_stat_team = frm_stat.transfert.OpenURL("http://folding.extremeoverclocking.com/xml/user_summary.php?u=176736")
            If html_stat_team = "" Then
                r = MsgBox("Le site de Stanford actuellement est indisponible.", vbExclamation, "Folding Online Signature")
                GoTo 3
            End If
            frm_stat.label_date_maj_team.Caption = Format(Now, "dd/mm/yyyy hh:mm:ss")
            Call SetFile(App.Path & "\" & "page_team.txt", html_stat_team)
        End If
     
        html_stat_team = GetFile(App.Path & "\" & "page_team.txt")
        ligne = ligne + 1
        DoEvents
     
        frm_stat.lbl_nom_team.Caption = Trim(recuperer_chaine(html_stat_team, "<TD>" & frm_stat.txt_equipe & "</TD><TD>", "</TD>"))
        ligne = ligne + 1
     
        'wu team
        frm_stat.lbl_points_equipe.Caption = recuperer_chaine(html_stat_team, frm_stat.lbl_nom_team.Caption & "</TD><TD>", "</TD>")
        ligne = ligne + 1
     
        'gene team
        frm_stat.lbl_wus_equipe.Caption = recuperer_chaine(html_stat_team, frm_stat.lbl_points_equipe.Caption & "</TD><TD>", "</TD>")
        ligne = ligne + 1
     
        '====page total===================
        'rang team
        frm_stat.lbl_rang_equipe.Caption = recuperer_chaine(html_stat_team, "<BR>Team rank: ", "<BR>")
        ligne = ligne + 1
    3:
        'total team
     
        If si_attente Then
            frm_attente.lbl_message.Caption = "Chargement de la page du classement des équipes"
        End If
        ligne = ligne + 1
        DoEvents
        dates = Format(Now, "dd/mm/yyyy hh:mm:ss")
        If (frm_stat.label_date_maj_teams.Caption = "00/00/0000 00:00:00") Or (StrComp(Mid(dates, 1, 10), Mid(frm_stat.label_date_maj_teams.Caption, 1, 10)) <> 0) Or GetFileExist(App.Path & "\" & "page_teams.txt") = False Then
            url_temp = frm_stat.transfert.OpenURL("http://vspx27.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=" & frm_stat.txt_equipe)
            If url_temp = "" Then
                r = MsgBox("Le site de Stanford actuellement est indisponible.", vbExclamation, "Folding Online Signature")
                GoTo 4
            End If
            frm_stat.label_date_maj_teams.Caption = Format(Now, "dd/mm/yyyy hh:mm:ss")
            Call SetFile(App.Path & "\" & "page_teams.txt", url_temp)
        End If
        html_stat_team = GetFile(App.Path & "\" & "page_teams.txt")
     
        frm_stat.lbl_rang_equipe.Caption = frm_stat.lbl_rang_equipe.Caption & " / " & recuperer_chaine(html_stat_team, "<TD align=left> " & frm_stat.lbl_rang_equipe.Caption + 2 & " of ", "</TD>") - 2
        ligne = ligne + 1
        DoEvents
    4:
    End Sub
    Et je pense que la déclaration de récupérer chaine vous aidera, même si moi, cela ne m'aide pas trop
    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
    Public Function recuperer_chaine(html As String, avant As String, apres As String) As String
    On Error GoTo fin
    Dim premier_index As Double
    Dim deuxieme_index As Double
     
        premier_index = InStr(1, html, avant)
        If premier_index > 0 Then
            deuxieme_index = InStr(premier_index + Len(avant), html, apres)
            If deuxieme_index > 0 Then
                recuperer_chaine = Mid(html, premier_index + Len(avant), deuxieme_index - (premier_index + Len(avant)))
            End If
        End If
    Exit Function
    fin:
        MsgBox Err.Number & " - " & Err.Description, vbInformation, "#" & Err.Number & " - 17"
        recuperer_chaine = ""
    End Function
    Donc voilà avec cela vu qu'il n'y a pas de commentaire, je ne comprends pas grand chose, dans la méthode de gérer le fichier et surtout pour récupérer les données. Tout ce code fonctionne avec le fichier d'origine à récupérer. Donc en fait je coince sur la compréhension des démarches qui sont faites, je pense qu'un commentaire sur la création du fichier une fois téléchargé, et sur une façon de récupérer les données, m'aurait suffit pour comprendre le reste

    Si vous avez des commentaires à faire, je suis preneur.

  12. #12
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Bonjour de bonne heure, c'est encore moi, et oui pas encore couché, cela me travail tout cela depuis plusieurs jours

    Donc voilà, là je viens de réussir à récupérer le fichier en ligne, et à le sauvegarder dans le dossier d'installation de l'application avec le nom souhaité. Pour cela j'ai fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    html_stat_personne = frm_stat.transfert.OpenURL("http://folding.extremeoverclocking.com/xml/user_summary.php?u=176736")
        Call SetFile(App.Path & "\" & "stats.xml", html_stat_personne)
        html_stat_team = GetFile(App.Path & "\" & "stats.xml")
    Et là à la fin à la 3ème ligne, je réouvre le fichier et le remet pour travailler à partir de celui ci et comme cela même en cas de bug, je l'aurais encore d'enregistré en local, dites moi si je me trompe.

    Là maintenant je veux passé à la partie récupération de donnée et là je séche, je sais par exemple que le nombre de points sera toujours à la ligne 29 du fichier et cela quelques soit le membre et cela sous cette forme :
    <Points>5489</Points>
    Déjà pour commencer, j'aimerais savoir puis je me rendre à la ligne 29 par 29 ?? Sachant que je devrais m'arréter presque à chaque ligne du fichier car elles contiennent presque toutes des données à récupérer.
    Et là mettre dans une variable machin, ce que je lirais à la ligne 29 par exemple. Là je ne vois pas comment faire, surtout lire une ligne particulière enfaite.

    Déjà arriver là serait un grand pas pour moi, si j'arrive à stocker chaque ligne à information dans une variable adapté cela sera pas mal.

    Ensuite faudrait mettre en une méthode pour supprimer les balises et c'est là que cela se corse à mon avis. Enfin je ne suis pas encore, mais là aussi si vous avez des pistes, n'hésitez pas.

    Je vais donc me couché voyant que j'ai enfin avancé un tout petit peu alors que je stagné depuis plusieurs jours. Mais là je crois que j'arrive à du très complexe pour moi

    Encore merci de votre patience et votre aide.

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Hello batmat86, t'es réveillé ?
    Quel type de fichier, le fichier que tu ouvres ? Un txt ?
    Je reprends ton exemple "<Points>5489</Points>" : Pour avoir 5489, tu as la fonction Replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    input #1, Ligne
    Temp = Replace(Ligne, "<Points>", "")
    Ligne = Replace(Temp, "</Points>", "")
    Et tu places Ligne avec Print dans #2 si tu as créé #2 en output
    Tu dis

    A+

  14. #14
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Bonjour, réveillé à 10h, non faut peut être pas réver Il me faut entre 8 et 10h de sommeil donc levé à 11h30.

    Revenons aux choses sérieuses. Le fichier que j'ouvre est en xml, mais si je dois le mettre en txt, pas de problème, j'ai juste à changer l'extension dans les des lignes de codes de mon dernier message.

    Et sinon, pour le moment j'ai que c'est 3liges de codes donné précédemment, pour la récupérer le fichier, le stocker et l'ouvrir.

    Et pour le getfile et setfile, j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function GetFile(Filename As String)
    ' renvoie le contenu du fichier "filename" sous forme d'une seule chaine de caractères
    Dim a As Long
    a = FreeFile()
    Open Filename For Input As #a
         GetFile = Input(LOF(a), a)
    Close #a
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function SetFile(Filename As String, texte As String)
    ' écrit la chaine de caractère "texte" dans le fichier "filename" (écrase l'ancien)
    Dim a As Long
    a = FreeFile()
    Open Filename For Output As #a
    Print #a, texte
    Close #a
    End Function
    Donc il est vrai que je gélère encore un peu à comprendre cela puisque pour moi c'est long du C++.

    Mais je pense avoir compris votre méthode ouskel'n'or, par contre, je me demande toujours, comment faire pour me rendre à la ligne 4 pour stocker telle informations, lignes 29 une autre et ainsi de suite.

    Merci beaucoup pour l'aide, je pense que je vais pour avancer dans les jours à venir comme cela.

  15. #15
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Observe cet exemple de l'aide en ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim TextLine
    Open "TESTFILE" For Input As #1	' Open file.
    Do While Not EOF(1)	' Loop until end of file.
    	Line Input #1, TextLine	' Read line into variable.
    	Debug.Print TextLine	' Print to Debug window.
    Loop
    Close #1	' Close file.
    Les lignes sont lues une par une.
    si tu veux ne lire que les lignes 4 et 25, par exemple, il te suffit d'ajouter un petit "compteur" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim TextLine
    dim compteur as integer
    compteur = 1
    Open "TESTFILE" For Input As #1	' Open file.
    Do While Not EOF(1)	' Loop until end of file.
       If compteur = 4 or compteur = 25 then
          Line Input #1, TextLine	' Read line into variable.
          Debug.Print TextLine	' Print to Debug window.
       end if
       compteur = compteur + 1
    Loop
    Close #1	' Close file.

  16. #16
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Bonjour, j'avais pensé à faire un compteur est une boucle, mais je pense que cela va me causer des problèmes.

    Je m'explique, je pense que je vais avoir en gros 20 variables pour recevoir chaque données utile qui est pratiquement à chaque ligne à part quelques exceptions.

    Donc là dans l'exemple avec une boucle comme celle que vous donnée, on stocke la donnée de la ligne 4 et 25 dans la même variablen ou alors j'ai mal compris.

    Donc dans ma tête, j'avais un algo de ce genre :

    Nom_equipe=Ligne 4
    Num_equipe=Ligne5
    Pseudo_membre=Ligne19
    ....
    Je ne vais pas mettre les 30 lignes. Et là après dans chaque variable, je devrais faire un replace, comme indiquer. Et ensuite, et bien mettre chaque variable dans le caption du label correspondant. Voilà ce que j'ai dans la tête. Mais entre la théorie et la pratique c'est bien différent

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Utilise un tableau, si tu références tes index, ça sera tout de même plus mieux sioux Tu peux agrandir ton tableau au fur et à mesure avec "Redim Preserve LeTableau(Compteur)"

    A+

  18. #18
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Mais non, mais non !
    Si le nombre de lignes à ignorer est petit, il suffit alors de faire le contraire dans la condition :
    au lieu de = 5 Or = 24
    mettre alors <> 3 or <> 9 or <> 20 pour traiter toutes les lignes sauf les lignes 3, 9 et 20 , par exemple !
    Tout ne va pas dans la même variable !
    Il y en a une distincte pour chaque ligne à traitée.
    Dans ta boucle, elle s'appelle TEXTLINE et se réinitialise à chaque tour dans la boucle.
    Dans l'exemple : elle est utilisée pour faire un debug.print (affichage)
    remplace debug.print mas Msgbox et tu comprendras mieux...
    Il te suffit alors de manipuler TEXTLINE comme tu l'entends, à chaque TEXTLINE trouvé !

  19. #19
    Membre régulier Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Points : 85
    Points
    85
    Par défaut
    Merci jmfmarques, pour l'éclaircissement, je commence à y voir plus clair.

    Mais par contre justement vu que TEXTLINE se réinitialise à chaque boucle, va bien falloir que je stocke chaque TEXTLINE dans un tableau par exemple, pour ensuite récupérer chaque TEXTLINE, par exemple TEXTLINE1, puis 2 .... Pour faire comme cela :

    Nom_equipe=TEXTLINE4
    Num_equipe=TEXTLINE5
    Pseudo_membre=TEXTLINE19

    En gros biensur, non ??

  20. #20
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bien sur !
    Et c'est précisément là le conseil de Ouskel'n'or
    Regarde dans l'aide en ligne avec les mots dim, redim et tableau et lis les exemples (ils sont très clairs), pour ne pas charger inutilement ici.
    Crées ensuite un tableau toto(n) ou n est le nombres de lignes au départ.
    ensuite, ce sera du genre toto(0) = TEXTLINE, puis à la prochaine TEXTLINE : toto(1) = TEXTLINE, etc...
    Tu peux aussi, si tu préfères, insérer une listbox (avec propriété invisible) et utiliser la méthode additem pour chaque TEXTLINE à insérer dans la listbox (aide en ligne également).
    Tout celà est très facile, tu vas voir !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2003] Croisement de fichiers pour récupération de données
    Par Taarzan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/09/2010, 13h09
  2. [fopen] création de fichier dans un répertoire donné
    Par bakaratoun dans le forum MATLAB
    Réponses: 4
    Dernier message: 09/12/2009, 14h39
  3. [XSLT] Création de fichier XML dynamique avec PHP
    Par daninho dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 02/02/2006, 11h18
  4. Fichier XML -> Création de DLL
    Par Nounours666 dans le forum Langage
    Réponses: 11
    Dernier message: 19/11/2005, 18h36
  5. [XML] Création d'un fichier XML
    Par TheDarkLewis dans le forum Langage
    Réponses: 6
    Dernier message: 24/07/2004, 18h27

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