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

VBScript Discussion :

Split complexe sur fichier texte


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Split complexe sur fichier texte
    Bonjour,

    Je me tourne vers vous car je sature à un haut point sur un parsing

    j'ai un fichier text qui se présente sous la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    hostname, xxx | yyy | zzz
    hostname2, xxx2 | yyy2 | zzz2 - xxx3 | yyy3 - xxx4 | yyy4 | zzz4
    ...
    Je dois en retirer un fichier qui se présentera sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    hostname, yyyzzz
    hostname2, yyy2zzz2
    hostname2, yyy3
    hostname2, yyy4zzz4
    ...
    J'arrive très bien à traiter les cas où je n'ai qu'un seul couple xxx | yyy | zzz mais dès que je passe à plus, je n'arrive plus à rien.

    Voici mon code à l'heure actuelle:
    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
     
    Sub Parse_Txt_File(sTextFile)
        Set objFso = CreateObject("Scripting.FileSystemObject")
        Set F1 = objFso.OpenTextFile (sTextFile, 1)
     
        Do Until F1.AtEndOfStream
            Lit = F1.ReadLine
            MyArrayComa = Split(Lit, ", ")
            For i = 0 to UBound(MyArrayComa)
                hostname = MyArrayComa(0)
                appcompinstserver = MyArrayComa(1)
    '            WScript.Echo hostname & " " & appcompinstserver
                MyArrayMinus = Split(appcompinstserver, " - ")
                For j = 0 to UBound(MyArrayMinus)
                    If Ubound(MyArrayMinus) = 0 Then
                        appcompinst = MyArrayMinus(0)
                        MyArrayPipe = Split(appcompinst, " | ")
                        For k = 0 to UBound(MyArrayPipe)
                            If UBound(MyArrayPipe) < 2 Then
                                service = MyArrayPipe(1)
                                WScript.Echo hostname & ", " & service
                            Else
                                service = MyArrayPipe(1) & MyArrayPipe(2)
                                WScript.Echo hostname & ", " & service
                            End If
                        Next
    '                Else
    '
                    End If
                Next
            Next
        Loop
    End Sub
    Oui c'est très lourd si quelqu'un à une petite idée je suis preneur, si besoin de plus amples explication, je fournirai

    Cordialement

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Code définitif et fonctionnel

    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
     
    Sub Parse_Txt_File(sTextFile)
        Set objFso = CreateObject("Scripting.FileSystemObject")
        Set F1 = objFso.OpenTextFile (sTextFile, 1)
     
        Do Until F1.AtEndOfStream
            Read = F1.ReadLine
            MyArrayComa = Split(Read, ", ")
            hostname = MyArrayComa(0)
            appcompinstserver = MyArrayComa(1)
            MyArrayMinus = Split(appcompinstserver, " - ")
            For j = 0 to UBound(MyArrayMinus)
                If Ubound(MyArrayMinus) = 0 Then
                    appcompinst = MyArrayMinus(0)
                    MyArrayPipe = Split(appcompinst, " | ")
                    If UBound(MyArrayPipe) < 2 Then
                        service = MyArrayPipe(1)
                        WScript.Echo hostname & ", " & service
                        Log_Msg strCmdbTxtPath, strCmdbTxt, lcase(hostname) & ", " & lcase(service)
                    Else
                        service = MyArrayPipe(1) & MyArrayPipe(2)
                        WScript.Echo hostname & ", " & service
                        Log_Msg strCmdbTxtPath, strCmdbTxt, lcase(hostname) & ", " & lcase(service)
                    End If
                Else
                    appcompinst = MyArrayMinus(j)
                    MyArrayPipe = Split(appcompinst, " | ")
                    If UBound(MyArrayPipe) < 2 Then
                        service = MyArrayPipe(1)
                        WScript.Echo hostname & ", " & service
                        Log_Msg strCmdbTxtPath, strCmdbTxt, lcase(hostname) & ", " & lcase(service)
                    Else
                        service = MyArrayPipe(1) & MyArrayPipe(2)
                        WScript.Echo hostname & ", " & service
                        Log_Msg strCmdbTxtPath, strCmdbTxt, lcase(hostname) & ", " & lcase(service)
                    End If
                End If
            Next
        Loop
    End Sub
    Si ca peut aider

Discussions similaires

  1. [Débutant] Split sur fichier texte pour alimenter une combobox
    Par ludo40190 dans le forum VB.NET
    Réponses: 8
    Dernier message: 23/07/2012, 20h14
  2. Réponses: 2
    Dernier message: 29/05/2006, 09h54
  3. [VB.NET]Problème de lecture et écriture sur fichier texte
    Par zouhib dans le forum Windows Forms
    Réponses: 25
    Dernier message: 23/05/2006, 15h30
  4. Réponses: 11
    Dernier message: 17/05/2006, 10h48
  5. problème sur fichier texte
    Par vivelesgnous dans le forum Général Python
    Réponses: 6
    Dernier message: 26/04/2006, 20h08

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