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 :

Rechercher une ligne dans un fichier texte


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    techninfo
    Inscrit en
    Août 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : techninfo

    Informations forums :
    Inscription : Août 2016
    Messages : 22
    Par défaut Rechercher une ligne dans un fichier texte
    Bonjour,

    j'ai un fichier nommé quartz.cfg qui contient ce genre de chose :
    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
     
     
    !
    ! Fichier de configuration
    !
    !   Définition du POSTE
    !
    !       00           O               Poste^.Idt
    !       01           M               Poste^.Code
    !       02           S4              Poste^.Abv
    !       03           S12             Poste^.Nom
    !       04           D               Poste^.HeureOuv
    !       05           D               Poste^.HeureFin
    !       06           S30             Poste^.NomReseau
    !
     
    00       0          7
    01       S4         BI7
    02       S12        Serveur
    03       S30        Bureau du Grand Chambellan ...
    06       S20        MCULBILLA0606
    07       S40        SOK:10.10.0.3|2050
     
    !
    !   Configuration matérielle
    !
    !       11           S10             CodeChiffres
    !       21           S12             Device billetterie
     
    11       S10        à&é"'(-è_ç
     
    21       S20        COM1:57600,N,8,1
    !21       S12        test
    22       S8         IER520
    !26       S          #SPC V6;#SPC C10;$STR B57600 D8 PN S0;#SPZ L1500;#SPA MH D-12;#SPZ Y20;
     
    51       S          Recette séance,seance,recette
    51       S          Recette calendrier,calendrier,rece_kld
    801  S  HUP
    J'ai besoin de récupérer la ligne qui commence par "00" (ici ligne 17)
    J'ai déjà réussi a faire ce script mais il ne fait que repérer les lignes qui contiennent "00" et moi j'ai besoin de récupérer la ligne qui commence par "00"



    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
     
    Const ForReading = 1
     
    Dim strSearchFor
    strSearchFor = "00"
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile("c:\sirius\Quartz.cfg", ForReading)
     
    do until objTextFile.AtEndOfStream
        strLine = objTextFile.ReadLine()
     
        If InStr(1, strLine, strSearchFor) <> 0 then
            Wscript.Echo "ligne trouvee"
    		Wscript.Echo strLine
        Else
            Wscript.Echo "ligne non trouvee"
        End If
    loop
    objTextFile.Close
    merci pour l'aide

  2. #2
    Membre averti
    Homme Profil pro
    techninfo
    Inscrit en
    Août 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : techninfo

    Informations forums :
    Inscription : Août 2016
    Messages : 22
    Par défaut
    bon, j'ai fait comme ceci qui me répère en plus le dernier caractère de la ligne trouvée

    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
     
    Dim WshNetwork
    Set WshNetwork = CreateObject("WScript.Network")
    strCompName = WshNetwork.ComputerName
    strUserName = WshNetwork.UserName
     
    Const ForReading = 1
     
    Dim strSearchFor
    strSearchFor = "00"
    Dim strIDposte
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile("c:\sirius\quartz.cfg", ForReading)
     
    Do Until objTextFile.AtEndOfStream
        strLine = objTextFile.ReadLine()
     
        If InStr(strLine, strSearchFor) <> 0 Then
            If Left(strLine, 2) = "00" Then
                strIDposte = Right(strLine, 1)
                Wscript.Echo strIDposte
            End If
       End If
    Loop
    objTextFile.Close

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 22
    Par défaut
    Salut,

    Tu peux utiliser la fonction SPLIT sur ta variable strLine.
    Si je ne dis pas de bêtise ton séparateur est une tabulation ?

    Si oui, donc utilises simplement Si non, transformes tes espaces et utilises le SPLIT.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ligne = Replace(strLine, " ", chr(9))
    tableau = Split(ligne, chr(9))

  4. #4
    Membre averti
    Homme Profil pro
    techninfo
    Inscrit en
    Août 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : techninfo

    Informations forums :
    Inscription : Août 2016
    Messages : 22
    Par défaut
    bonjour,

    j'ai une autre demande pour améliorer le script, j'ai dans un fichier ce genre de ligne :

    ou
    Comment je peux dire dans le script de récupérer tout ce qu'il y a après UTILID= ?

    quand c'est un nombre de caractères constant, j'utilise Right(strLine, nombre-caractère_a_recuperer), mais là cela n'est pas possible

    Merci

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    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 132
    Par défaut
    Salut
    En supposant que le caractère espace suit la valeur à récupérer, sinon modifier le 2ém TextRech ligne 8.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim TextSoumis, TextRech, Retour
    Dim Deb, Fin
    TextSoumis = "je recherche ce qu'il y a après UTILID=CH141206 comment faire?"
    TextRech = "UTILID="
    Deb = InStr(1, TextSoumis, TextRech, vbTextCompare)
    If Deb <> 0 Then
        Deb = Deb + Len(TextRech)
        TextRech = " " 'si il y a toujours un espace après la valeur à rechercher
        Fin = InStr(Deb, TextSoumis, TextRech, vbTextCompare)
        Retour = Mid(TextSoumis, Deb, Fin - Deb)
        MsgBox Retour
        Else
        MsgBox "pas trouvé"
    End If
    :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 ← ← 👈

  6. #6
    Membre averti
    Homme Profil pro
    techninfo
    Inscrit en
    Août 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : techninfo

    Informations forums :
    Inscription : Août 2016
    Messages : 22
    Par défaut
    merci, je test...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2014, 16h49
  2. Recherche d'une ligne dans un fichier texte
    Par ChristineGuerre dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 06/08/2014, 09h34
  3. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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