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 :

[VBS] Extraire des données d'un fichier externe


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [VBS] Extraire des données d'un fichier externe
    bonjour,

    je suis actuellement en train de travailler avec la fonction Scripting.Dictionary, qui fonctionne plutôt bien, cependant je risque de devoir ajouter une 100aine d'entrées dans le dico d’où ma question est ce qu'il serait possible d'externalisze le dico de mon script principal et charger le contenu du code ci dessous dans un autre fichier. Ca me permettrais de ne modifier que le fichier dictionnaire sans modifier le fichier script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Set dico=CreateObject("Scripting.Dictionary")
    dico.add "clé1","valeur1"
    dico.add "clé2","valeur2"
    dico.add "clé3","valeur3"
    ...
    dico.add "clé120","valeur120"
    merci de votre aide
    Dernière modification par Invité ; 01/07/2013 à 13h04.

  2. #2
    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

    Inspirez-vous de cette Discussion : Comparer 2 fichiers texte et récupérer la différence

  3. #3
    Invité
    Invité(e)
    Par défaut
    je ne suis pas un crack en vbs, je viens de regarder votre lien,

    apres avoir essayer de decrypter le code, est ce cette partie du code qui pourrais m'interresser ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set f = fso.OpenTextFile("c:\listeProcess1.txt", ForWriting,true
    donc avoir un fichier txt qui ne contient que

    "clé2","valeur2"
    "clé3","valeur3"
    etc

    c'est bien cela ? mais comment l'integrer ?
    merci bonne journée

  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

    Postez ce que tu as fais jusqu'à maintenant et

  5. #5
    Invité
    Invité(e)
    Par défaut
    ba en faite, j'ai trouvé ce code, qui pourrais correspondre a ce que je cherche :

    rechercher la valeur d'une variable dans un fichier externe :

    voici le code en question :

    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
    Dim strIniFile
     
    strIniFile="Test.ini"
    Set oFs=CreateObject("Scripting.FileSystemObject")
     
    If oFs.FileExists(strIniFile) Then
    Set oFile=oFs.OpenTextFile(strIniFile)
    Execute oFile.ReadAll()
    Else
    Msgbox "Le fichier (.ini) n'a pas été trouvé !!!"
    WScript.Quit
    End If
     
    Set oFile=Nothing
    Set oFs=Nothing
    et le fichier ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "clé1","valeur1"
    "clé2","valeur2"
    "clé3","valeur3"
    dans ce cas je souhaiterais rechercher que une variable donnée est avoir un resultat de de se genre :

    variable rechercher "clé 2" et obtenir l'affichage de "valeur 2"

    Si j'ai bien compris le script ci-dessus il faut que je modifie cette partie du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Execute oFile.ReadAll()
    afin d'afficher uniquement la clé désiré .

    mais comment faire ?

  6. #6
    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

    Ce code est inspiré de cette discussion : Contenu d'un CSV dans un tableau 2D
    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
    Const ForReading = 1, ForWriting = 2 
    Dim oFso, f
    Set oFso = CreateObject("Scripting.FileSystemObject")
    Set f = oFso.OpenTextFile("test.ini", ForReading)
    ln=-1
    cl=0
     
    while Not f.AtEndOfStream '1ère itération pour définir les limites
        ln=ln+1 'définition indice lignes
        Tab=Split(f.ReadLine,",")
        If cl < UBound(Tab) Then cl = UBound(Tab) 
    Wend
    f.Close
    MsgBox "indice lignes  = " & ln & Vbcr & "indice colonnes = " & cl,64,"Information"
     
    Dim Tab2()
    ReDim Tab2(ln,cl)
    Set f = oFso.OpenTextFile("test.ini", ForReading)
    i=0
    while Not f.AtEndOfStream ' 2ème itération pour remplir le tableau
        Tab = Split(f.ReadLine,",")
        For j = 0 to UBound(Tab)
            Tab2(i,j) = Tab(j)
        Next
        i=i+1
    Wend
    f.Close
     
    Dim OutPut : OutPut = "OutPut_Resultat.txt"
    Set f = oFso.OpenTextFile(OutPut,ForWriting,True)
    Set ws = CreateObject("Wscript.Shell")
     
    For i=0 to UBound(Tab2,1) ' vérification
        For j=0 to UBound(Tab2,2)
            If j = UBound(Tab2,2) Then exit For
            f.WriteLine "La valeur de Tab2("&i&","&j&") = " & Tab2(i,j) & " à pour valeur ===> & Tab2("&i&","&j+1&") = "& Tab2(i,j+1) 
            MsgBox "La valeur de Tab2("&i&","&j&") = " & Tab2(i,j) & " à pour valeur ===> & Tab2("&i&","&j+1&") = "& Tab2(i,j+1),64,"Information"
        Next
    Next
    f.WriteLine VbNewline & String(75,"*")
    f.WriteLine "Exemple : La valeur de Tab2(1,1) ===> "& Tab2(1,1)
    f.WriteLine "Exemple : La valeur de Tab2(5,1) ===> "& Tab2(5,1)
    ws.run "Notepad " & OutPut
    avec un fichier test.ini pour le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    "clé1","valeur1"
    "clé2","valeur2"
    "clé3","valeur3"
    "clé4","valeur4"
    "clé5","valeur5"
    "clé6","valeur6"
    "clé7","valeur7"
    "clé8","valeur8"
    "clé9","valeur9"
    "clé10","valeur10"

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

Discussions similaires

  1. Extraire des données dans un fichier .csv
    Par orj30754 dans le forum C
    Réponses: 7
    Dernier message: 03/11/2006, 14h48
  2. Réponses: 2
    Dernier message: 20/10/2006, 10h49
  3. [Excel] Extraire des données d'un fichier xls en php
    Par splinternabs dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 06/04/2006, 09h11
  4. Extraire des donnés d'un fichier texte
    Par sadsad dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2006, 15h09
  5. Réponses: 7
    Dernier message: 29/09/2005, 10h19

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