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 :

écrire dans un fichier xml


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut écrire dans un fichier xml
    je souhaiterai écrire un script qui me permettrai d'extraire des login et mot de passe d'un fichier csv et de les ajouter dans un fichier xml au niveau des balises adéquates.Et en faisant une boucle pour ajouter autant de users qu'il y en a dans le fichiers suivant.Pour cela j'ai un fichier globaluser.csv de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    "nom,prénom,login,mot de passe"
    vador,dark,vadark,starwars
    kenoby,obiwan,obiken,jediknight
    skywalker,anakin,anasky,obscur
    senateur,palpatine,sidious,empereur
    sith,maul,masith,darkmaul
    master,yoda,yomast,boulverte
    J'ai pensé a réécrire complètement le fichier xml à partir du fichier csv.
    A partir de celui-ci il faut que j'extrai les 3è et 4è champ de chaque ligne afin de les replacer dans les bonnes balises de ce fichier filezillaserver.xml (pour ne pas mettre une tonne de code je ne recopie que la partie qui m'interresse là ou il faut que j'ajoute mes users et j'ai aussi ajouter des commentaires pour la compréhension du fichier):
    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
    test.writeline "<Users>"
    'lire le fichier globaluser.csv, en extraire les login et passwords
    'stocker les logins et les passwords dans des variables différentes 
    'coder les mots de passe en md5
    'à partir d'ici faire une boucle tant qu'il y a des nouveaux users à ajouter
    test.writeline "<User Name='login'>"
    'test.writeline "<option Name='Pass> motp de passe codé en md5 </option>
    test.writeline "<Option Name='Pass'/>"
    test.writeline "<Option Name='Group'/>"
    test.writeline "<Option Name='Bypass server userlimit'>0</Option>"
    test.writeline "<Option Name='User Limit'>0</Option>"
    test.writeline "<Option Name='IP Limit'>0</Option>"
    test.writeline "<Option Name='Enabled'>1</Option>"
    test.writeline "<Option Name='Comments'/>"
    test.writeline "<Option Name='ForceSsl'>0</Option>"
    test.writeline "<IpFilter>"
    test.writeline "<Disallowed/>"
    test.writeline "<Allowed/>"
    test.writeline "</IpFilter>"
    test.writeline "<Permissions>"
    test.writeline "<Permission Dir='E:\Projet\www\bidul'>"
    test.writeline "<Option Name='FileRead'>1</Option>"
    test.writeline "<Option Name='FileWrite'>1</Option>"
    test.writeline "<Option Name='FileDelete'>1</Option>"
    test.writeline "<Option Name='FileAppend'>1</Option>"
    test.writeline "<Option Name='DirCreate'>1</Option>"
    test.writeline "<Option Name='DirDelete'>1</Option>"
    test.writeline "<Option Name='DirList'>1</Option>"
    test.writeline "<Option Name='DirSubdirs'>1</Option>"
    test.writeline "<Option Name='IsHome'>1</Option>"
    test.writeline "<Option Name='AutoCreate'>0</Option>"
    test.writeline "</Permission>"
    test.writeline "</Permissions>"
    test.writeline "<SpeedLimits DlType='0' DlLimit='10' ServerDlLimitBypass='0' UlType='0' UlLimit='10' ServerUlLimitBypass='0'>"
    test.writeline "<Download/>"
    test.writeline "<Upload/>"
    test.writeline "</SpeedLimits>"
    test.writeline "</User>"
    'fin de la boucle
    test.writeline "</Users>"
    test.writeline "</FileZillaServer>"
    donc voila je suis totalement dans le flou car je ne suis pas du tout calé en vbs.J'espère avoir une aide pour me sortir de ce pétrin .
    Je vous remercie d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Salut,

    Sur quoi bloques-tu :
    Lecture du fichier à parser ?
    Ecriture du fichier XML ?

    Karl.

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Pour la lecture du fichier texte, je comprend, mais je ne vois pas la syntaxe qui peut permettre de prendre uniquement les champs que l'on souhaite sur une ligne, quand il y a un délimiteur comme dans les fichiers csv?Peut-être avec la fonction instr
    (petite précision, je travail sur le script avec isaglada, c'est pour cette raison que je me permet ce message)

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Split après le ReadLine.

  6. #6
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    bonjour,
    ...et pour débroussailler avant d'appliquer la fonction split
    on peut aussi utiliser l'objet regexp avec le pattern: "[^,]*,[^,]*\r"
    qui te donnera le 3ème et le 4ème champ de chaque ligne

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    bonjour,

    je vais voir le fonctionnement de l'objet regexp avant d'essayer la fonction Split, en plus je ne connais pas, et je souhaiterai éviter de passer par un tableau.
    Merci beaucoup

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Pourtant, l'usage d'un tableau est très simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim aLine
    aLine = Split(f.ReadLine, ";") ' Si le séparateur est un point-virgule
    MsgBox aLine(5) ' Pour lire le sixième élément de la ligne

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    bonjour,

    normalement j'ai bientot fini, j'attend de mieux le modifier avant de le poster.
    Finalement, j'ai choisi de travailler avec un tableau, je vous le posterai un peu plus tard.
    Et encore merci

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    ça y est le script est fini il fonctionne, je suis contente, je vous le met, il recopie bien le fichier .xml à partir d'un .csv

    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
    strFichier="globaluser.csv"
    'je stocke le fichier globaluser.csv dans la variable strFichier
     
     
    Const ForReading = 1
     
     
    Set fsoFichierSource=CreateObject("Scripting.FileSystemObject")
    	'creation de l'objet dans fsoFichierSource
     
    Set tsTexte=fsoFichierSource.OpenTextFile(strFichier, ForReading)
    	'ouverture du fichier dans la variable tsTexte
     
    	Do While Not tsTexte.AtEndOfStream
    	'Je fais une boucle Tant que je ne suis pas à la fin du fichier
     
    	strLigne=tsTexte.ReadLine 
    	'Je stocke la ligne dans la variable strLigne
     
    	strTableau=Split(strLigne , "," )
     
    	'Je stocke chaque champs de la ligne dans un tableau 
     
    		strChampsLog=strTableau(2)
    		strChampsMdp=strTableau(3)
    	'Je stocke le 3ème champ (login) dans strChampsLog 
    	'et le 4ème champ (Mot de passe) dans strChampsMdp
     
     
     
     
     
     
     
     
    test.writeline "<User Name="&chr(34)&strChampsLog&chr(34)&">"
    'test.writeline "<option Name='Pass'> 'strChampsMdp' </option>" à coder en md5
    test.writeline "<Option Name='Pass'/>"
    test.writeline "<Option Name='Group'/>"
    test.writeline "<Option Name='Bypass server userlimit'>0</Option>"
    test.writeline "<Option Name='User Limit'>0</Option>"
    test.writeline "<Option Name='IP Limit'>0</Option>"
    test.writeline "<Option Name='Enabled'>1</Option>"
    test.writeline "<Option Name='Comments'/>"
    test.writeline "<Option Name='ForceSsl'>0</Option>"
    test.writeline "<IpFilter>"
    test.writeline "<Disallowed/>"
    test.writeline "<Allowed/>"
    test.writeline "</IpFilter>"
    test.writeline "<Permissions>"
    test.writeline "<Permission Dir='E:\Projet\www\bidul'>"
    test.writeline "<Option Name='FileRead'>1</Option>"
    test.writeline "<Option Name='FileWrite'>1</Option>"
    test.writeline "<Option Name='FileDelete'>1</Option>"
    test.writeline "<Option Name='FileAppend'>1</Option>"
    test.writeline "<Option Name='DirCreate'>1</Option>"
    test.writeline "<Option Name='DirDelete'>1</Option>"
    test.writeline "<Option Name='DirList'>1</Option>"
    test.writeline "<Option Name='DirSubdirs'>1</Option>"
    test.writeline "<Option Name='IsHome'>1</Option>"
    test.writeline "<Option Name='AutoCreate'>0</Option>"
    test.writeline "</Permission>"
    test.writeline "</Permissions>"
    test.writeline "<SpeedLimits DlType='0' DlLimit='10' ServerDlLimitBypass='0' UlType='0' UlLimit='10' ServerUlLimitBypass='0'>"
    test.writeline "<Download/>"
    test.writeline "<Upload/>"
    test.writeline "</SpeedLimits>"
    test.writeline "</User>"
     
    loop
    'fin de la boucle
     
         tsTexte.Close
    'Fermeture du fichier globaluser.csv
     
    test.writeline "</Users>"
    test.writeline "</FileZillaServer>"
    Merci beaucoup

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Un grand merci a tous pour nous avoir aider.

  12. #12
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Dommage d'avoir fait ça simplement avec des writeline, et de ne pas en avoir profiter pour étudier la façon de gérer un fichier xml

    enfin ....

  13. #13
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 299
    Points : 3 554
    Points
    3 554
    Par défaut
    de ne pas en avoir profiter pour étudier la façon de gérer un fichier xml
    ça, c'est le programme du 3ème trimestre...

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    non justement nous n'avons pas de troisième trimestre, et je ne connais pas du tout la gestion des fichiers xml, à vrai dire on a pas du tout vu ça!
    Je pense que je vais essayé, ça peut être plus intérressant et aussi pour un meilleur résultat. Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/01/2008, 21h48
  2. écrire dans un fichier XML
    Par sliderman dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 13/01/2008, 21h24
  3. [XML] [PHP-Flash] écrire dans un fichier XML via un fichier PHP
    Par morgiane dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 24/11/2006, 12h05
  4. [DOM XML] Comment écrire dans un fichier XML ?
    Par morgiane dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/11/2006, 11h32
  5. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 20h48

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