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 :

Aide découpage chaine.


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut Aide découpage chaine.
    Bonjour,

    j'ai un fichier texte avec le contenu ci-dessous :


    Changed the current scope context to 10.0.0.0 scope.

    Options for Scope 10.0.0.0:

    DHCP Standard Option :
    General Option Values:
    OptionId : 51
    Option Value:
    Number of Option Elements = 1
    Option Element Type = DWORD
    Option Element Value = 691200
    OptionId : 3
    Option Value:
    Number of Option Elements = 1
    Option Element Type = IPADDRESS
    Option Element Value = 10.0.0.1
    OptionId : 66
    Option Value:
    Number of Option Elements = 1
    Option Element Type = STRING
    Option Element Value = 10.0.0.12
    OptionId : 67
    Option Value:
    Number of Option Elements = 1
    Option Element Type = STRING
    Option Element Value = 10.0.0.2
    Command completed successfully.
    Je souhaiterai extraire une info dans la section OptionId : 51

    Le champs : Option Element Value = 691200

    Savez vous comment je peux découper ca svp ?

    En fait ce chiffre est une durée en minutes que je convertirai en heure par la suite.

    Merci d'avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Par défaut
    Bonjour,


    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
    Const ForReading = 1
    Set fso = CreateObject("Scripting.FileSystemObject" ) 
    Set FileConfig = fso.OpenTextFile(NomFichier,ForReading,True)
    FileConfig_data = FileConfig.ReadAll
    FileConfig.Close 
    arrLines = Split(FileConfig_data,vbCrLf)
     
    '** Recherche Option Id **
    Set a = New RegExp
    a.Pattern = "OptionId" 						
    a.IgnoreCase = True 
    a.Global = False 'Renvoyer seulement la première occurrence
     
     
    For i = 0 To UBound(arrLines) 						
    	occurrence = a.Test(arrLines(i))
     
    		If (occurrence = True) Then
    			tab = Split(arrLines(i),":")
    			valOptId = tab(1)
    			IndiceId = Csng(valOptId)
    				If (valOptId = 51) Then
    					tab2 = Split(arrLines(i+4),"=")
    					OptElementValue = tab2(1)
    					ValOptElemId = Csng(OptElementValue)
    'Traitement sur 691200 (Déjà converti pour manipulation comme un nombre)
     
     
     
    				End If
    		End If		
    Next
    Quelque chose comme cela ?

  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

    Dans le même esprit
    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
    'reconstitution du fichier, pour l'exemple
    LeTexte = "Changed the current scope context to 10.0.0.0 scope." & vbNewLine & vbNewLine _
    & "Options for Scope 10.0.0.0:" & vbNewLine & vbNewLine _
    & "DHCP Standard Option :" & vbNewLine _
    & "General Option Values:" & vbNewLine _
    & "OptionId : 51" & vbNewLine _
    & "Option Value:" & vbNewLine _
    & "Number of Option Elements = 1" & vbNewLine _
    & "Option Element Type = DWORD" & vbNewLine _
    & "Option Element Value = 691200" & vbNewLine _
    & "OptionId : 3" & vbNewLine _
    & "Option Value:" & vbNewLine _
    & "Number of Option Elements = 1" & vbNewLine _
    & "Option Element Type = IPADDRESS" & vbNewLine _
    & "Option Element Value = 10.0.0.1" & vbNewLine _
    & "OptionId : 66" & vbNewLine _
    & "Option Value:" & vbNewLine _
    & "Number of Option Elements = 1" & vbNewLine _
    & "Option Element Type = STRING" & vbNewLine _
    & "Option Element Value = 10.0.0.12" & vbNewLine _
    & "OptionId : 67" & vbNewLine _
    & "Option Value:" & vbNewLine _
    & "Number of Option Elements = 1" & vbNewLine _
    & "Option Element Type = STRING" & vbNewLine _
    & "Option Element Value = 10.0.0.2" & vbNewLine _
    & "Command completed successfully. "
     
    TblStr = Split(LeTexte, "OptionId : 51")
    'TblStr(1) contient tout ce qui suit la ligne OptionId : 51
    MsgBox "contenu de TblStr(1):" & vbNewLine & vbNewLine & TblStr(1)
     
    TblStr = Split(TblStr(1), "Option Element Value =")
    'TblStr(1) contient tout ce qui suit la ligne Option Element Value = , de OptionId : 51
    MsgBox "contenu de TblStr(1):" & vbNewLine & vbNewLine & TblStr(1)
     
    TblStr = Split(TblStr(1), vbNewLine)
    'TblStr(0) contient la valeur de Option Element Value de OptionId : 51 faisant partie du texte dans lequel on a recherché
    MsgBox "contenu de TblStr(0):" & vbNewLine & vbNewLine & Trim(TblStr(0))
    :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
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Pour votre exemple avec ce qui est marqué en gras 691200 pour l'extraction:
    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
    Titre = "Extraction"
    Const ForReading = 1
    NomFichier = "fichier.txt"
    Set fso = CreateObject("Scripting.FileSystemObject" ) 
    Set FileConfig = fso.OpenTextFile(NomFichier,ForReading,True)
    FileConfig_data = FileConfig.ReadAll
    FileConfig.Close 
    Set reg = New regexp
    reg.Pattern = "\b[0-9]{6}\b"
    reg.Global = True
    reg.IgnoreCase = True
    Set Matches = reg.Execute(FileConfig_Data)
    For Each Match in Matches   
        MsgBox "L'ID : " & Match.Value,64,Titre 
    Next

  5. #5
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 386
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
          lu    = "fichier texte.txt"
            oev="Option Element Value ="
     Set        oFso = CreateObject("Scripting.FileSystemObject")
         if not ofso.fileexists(lu) then _
                msgbox "fichier non trouvé",, lu : wscript.quit
                 ficl= oFSO.GetFile(lu).path
            Set f    = oFso.OpenTextFile(ficl)
      do
            l = f.readline
            if l = "OptionId : 51" then tid=true
            if instr(1,l,oev) and tid then  msgbox mid(l,len(oev)+1) :exit do
      loop until  f.AtEndOfStream
      f.Close

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut
    Merci à vous c'est le top avec une expression régulière

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

Discussions similaires

  1. expr.rég => découpage chaine de n caracteres
    Par mashu dans le forum Langage
    Réponses: 8
    Dernier message: 20/11/2008, 11h49
  2. Découpage chaine et Insertion dans table
    Par star dans le forum SQL
    Réponses: 1
    Dernier message: 09/04/2008, 12h02
  3. Aide pour chaine en majuscule
    Par jayfaze dans le forum Débuter
    Réponses: 15
    Dernier message: 10/10/2007, 22h31
  4. [aide] découper chaine.
    Par florantine dans le forum Langage
    Réponses: 11
    Dernier message: 04/01/2006, 14h44
  5. Réponses: 10
    Dernier message: 17/12/2003, 13h51

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