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.NET Discussion :

Récupérer données d'un fichier txt (Open Data)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 31
    Par défaut Récupérer données d'un fichier txt (Open Data)
    J'ai supprimé tous les doublons, donc je repose ma question :


    Je cherche à récupérer certaines données gouvernementales (Open Data) de ce fichier txt en ligne (mis à jour toutes les 10min) :
    http://data.geo.admin.ch.s3.amazonaw...dex/VQHA69.txt

    Pour ensuite les afficher dans Visual Basic de façon propre et actualisé toutes les 10 minutes.

    Si quelqu'un peut m'aider ou me donner une piste car je ne sais pas par où commencer! Je vous en serais reconnaissant.

  2. #2
    Membre éclairé Avatar de petit rabot
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2010
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2010
    Messages : 236
    Par défaut
    Une ébauche...
    avec un WebBrowser, un listbox, un commandbutton

    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
    Dim fso As Object, WS As Object, f, ST$
    Const ForReading = 1, ForWriting = 2
     
    Private Sub Command1_Click()
     
        'affiche la page et enregistre le fichier
        WebBrowser1.Navigate "http://data.geo.admin.ch.s3.amazonaws.com/ch.meteoschweiz.swissmetnet-foehnindex/VQHA69.txt"
        WebBrowser1.Visible = True
        Do While WebBrowser1.ReadyState <> READYSTATE_COMPLETE
            DoEvents
        Loop 'Attend la fin du chargement
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set WS = CreateObject("WScript.Shell")
        Set f = fso.OpenTextFile("C:\Wb.txt", 2, True)
        If WebBrowser1.Busy = False Then
            ST = WebBrowser1.Document.documentElement.innerHTML
            f.Write FindAndWrite(ST)
            f.Close
        End If
     
        'insère les lignes dans la list
        Set f = fso.OpenTextFile("C:\Wb.txt", ForReading)
        While Not f.AtEndOfStream
            List1.AddItem (f.ReadLine)
        Wend
        f.Close
     
    End Sub
     
    Private Function FindAndWrite(sText) As String
     
      Dim Ret$, tb() As String, I%, Trouve As Boolean
      tb = Split(sText, vbNewLine, , vbTextCompare)
      Ret = ""
      Trouve = False
      For I = LBound(tb) To UBound(tb)
        If UCase$(Mid$(tb(I), 1, 5) = "<BODY") Then Trouve = True
         If Trouve Then Ret = Ret + tb(I) + vbNewLine
         If UCase$(Mid$(tb(I), 1, 7) = "</BODY>") Then Exit For
      Next I
      FindAndWrite = Ret
     
    End Function
    A toi de continuer avec ça, il y a surement mieux...

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut
    Une autre approche, sur un Form, 2 CommandButton, 1 TextBox et 1 Timer.
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    Option Explicit
     
    'nécessite d'activer la référence Microsoft Internet Controls
    Dim IE As InternetExplorer
    'nécessite d'activer la référence Microsoft HTML Objects Library
    Dim Doc As HTMLDocument
    Dim AdrssSite As String
     
    Dim DizaineMinutes As Integer
    Dim ExitProg As Boolean
     
    Private Sub Form_Load()
    Timer1.Enabled = False
    Command1.Move 60, 120, 1875, 315
    Command1.Caption = "Scan immédiat"
    Command2.Move 2040, 120, 1875, 315
    Command2.Caption = "Scanner"
    'Text1.ScrollBars = 2 '<-------  A faire en design
    Text1.Move 60, 540, 9015, 5775
    Text1.Text = ""
    Me.Height = 6960: Me.Width = 9405
     
     
    ExitProg = False
    AdrssSite = "http://data.geo.admin.ch.s3.amazonaws.com/ch.meteoschweiz.swissmetnet-foehnindex/VQHA69.txt"
    'Timer1.Interval = 60000 '1 Mn
    Timer1.Interval = 5000 '5 Sc <---- pour la démo ----
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Timer1.Enabled = False
    ExitProg = True
    If TypeName(Doc) <> "Nothing" Then Doc.Close: Set Doc = Nothing
    If TypeName(IE) <> "Nothing" Then Set IE = Nothing
    End Sub
     
    Private Sub Command2_Click()
    If Timer1.Enabled = True Then
        Command2.Caption = "Scanner"
        Timer1.Enabled = False
        Else
        Command2.Caption = "Scan en cours"
        DizaineMinutes = 0
        RecupInfos
        Timer1.Enabled = True
    End If
    End Sub
    Private Sub Timer1_Timer()
    RecupInfos '<---- A supprimer pour ton cas
    ' 5 lignes à libérer pour ton cas
    'DizaineMinutes = DizaineMinutes + 1
    'If DizaineMinutes = 9 Then
    '    DizaineMinutes = 0
    '    RecupInfos
    'End If
    End Sub
    Private Sub Command1_Click()
    RecupInfos
    End Sub
     
    Private Sub RecupInfos()
    On Error GoTo Gesterr
    Text1.Text = "Connexion ...."
     
    Set IE = New InternetExplorer
    IE.navigate AdrssSite
    Do While IE.readyState <> READYSTATE_COMPLETE
        DoEvents
        If ExitProg = True Then Exit Sub
    Loop
     
    Text1.Text = "Récuperaion du document...."
    Do While IE.document.readyState <> "complete"
        DoEvents
        If ExitProg = True Then Exit Sub
    Loop
     
    Set Doc = IE.document
    Text1.Text = Now & vbNewLine & vbNewLine & Doc.childNodes(1).innerText
     
    Doc.Close: Set Doc = Nothing
    Set IE = Nothing
    Exit Sub
     
    Gesterr:
    If TypeName(Doc) <> "Nothing" Then Doc.Close: Set Doc = Nothing
    If TypeName(IE) <> "Nothing" Then Set IE = Nothing
    Text1.Text = "Probléme inattendu"
    End Sub
    ensuite les afficher dans Visual Basic de façon propre
    Cela devra faire partie d'une autre discussion.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre éclairé Avatar de petit rabot
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2010
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2010
    Messages : 236
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut
    Une autre approche, sur un Form, 2 CommandButton, 1 TextBox et 1 Timer.
    Après essais, la version de ProgElecT est vraiment beaucoup plus pro que la mienne

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 31
    Par défaut
    merci beaucoup.

    Je vais regarder ça mais j'ai vais peut-être d'abord passer par une base de donnée. D'ailleurs je vais créer un sujet sur le forum approprié pour demander conseil.

    Encore merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 31
    Par défaut
    Je n'arrive pas à faire fonctionner ton code j'ai pleins d'erreurs de compilation

    Je ferais un screen des erreurs ce week-end, je suis un peu débordé là

Discussions similaires

  1. [OpenOffice][Base de données] Récupérer les données d'un fichier .txt et les insérer dans une base de données
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 05/08/2009, 10h52
  2. Récupérer données d'un fichier .txt
    Par fredhali2000 dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2008, 19h28
  3. Récupérer données d'un fichier txt
    Par kakuzu dans le forum Général Java
    Réponses: 6
    Dernier message: 08/04/2008, 15h36
  4. [Tableaux] Récupérer données d'un fichier txt
    Par valouche dans le forum Langage
    Réponses: 5
    Dernier message: 14/02/2008, 09h36

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