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

VB.NET Discussion :

Lecture récursive de plusieurs fichiers xml dans un répertoire


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Lecture récursive de plusieurs fichiers xml dans un répertoire
    Bonjour,
    J'ai un dossier contenant plusieurs documents xml. mon programme doit fonctionner en batch, donc pas d'IHM, donc est censé parcourir tous les fichiers s'y trouvant.
    pour l'instant, j'en suis seulement à tester le code pour parcourir les documents du dossier
    voici le code:
    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
     Private Sub ImportDoc_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'variable pour les balises du document xml
            'Dim xmlDoc As XmlDocument = New XmlDocument()
            'variables pour les valeurs du documents xml
     
            Try
                'variable pour tester le dossier
                Dim dir As String() = Directory.GetFileSystemEntries(documents)
                'variable pour les fichiers dans le dossier documents
                Dim xmlFiles As String
                xmlFiles = dir(report & "*.xml")
                'Parcourrir le dossier
                If dir.Length = 0 Then
                    'le dossier est vide
                    writeFile(report, vbDate & "No document today!")
                Else : writeFile(report, vbDate)
                    'le dossier n'est pas vide
                    For Each xmlFiles In dir
     
                        writeFile(report, "Ok")
                    Next
     
                End If
            Catch ex As Exception
                writeFile(report, ex.Message)
            End Try
     
        End Sub
    dans mon fichier texte report il m'écrit ceci:
    La conversion de la chaîne ""C:\Users\leeti\Desktop\Projet de"" en type 'Integer' n'est pas valide.
    Je tourne en rond sur internet depuis des heures!!!
    Merci d'avance

  2. #2
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut
    essaye d'adapter ca a ton projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Public Sub ScanDossier()
            Dim sFiles() As String
            Dim nbfiles As String
            Dim i As Integer
            sFiles = Directory.GetFiles(PathDossier)
            nbfiles = Directory.GetFiles(PathDossier).Length()
            For i = 0 To nbfiles - 1
                Dim pathfile As String = sFiles(i)
                enregistrementXMLtoBDD(pathfile)
                'MsgBox(pathfile)
            Next
     
        End Sub
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
        Public Sub enregistrementXMLtoBDD(ByVal pathfile As String)
     
            Dim NomEntreprise As String = ""
            Dim adresse As String = ""
            Dim codepostal As String = ""
            Dim ville As String = ""
            Dim telephone As String = ""
            Dim fax As String = ""
            Dim courriel As String = ""
            Dim distributeur As String = ""
            Dim date_verif As String = ""
            Dim dateMES As String = ""
            Dim sac As String = ""
            Dim controleur As String = ""
            Dim ref As String = ""
            Dim anne As String = ""
            Dim duree As String = ""
            Dim marque As String = ""
            Dim modele As String = ""
            Dim norme As String = ""
            Dim num As String = ""
            Dim observation As String = ""
            Dim typeEPI As String = ""
            Dim resultat As String = ""
     
            Dim XmlDoc As XmlDocument = New XmlDocument()
            XmlDoc.Load(pathfile)
            Dim element As XmlNodeList
            element = XmlDoc.DocumentElement.GetElementsByTagName("EPI")
            Dim noeud, noeudEnf As XmlNode
            For Each noeud In element
                For Each noeudEnf In noeud.ChildNodes
                    Select Case noeudEnf.LocalName
     
                        Case "ENTREPRISE"
                            NomEntreprise = noeudEnf.InnerText.Replace("'", " ")
                        Case "ADRESSE"
                            adresse = noeudEnf.InnerText.Replace("'", " ")
                        Case "CODEPOSTAL"
                            codepostal = noeudEnf.InnerText.Replace("'", " ")
                        Case "VILLE"
                            ville = noeudEnf.InnerText.Replace("'", " ")
                        Case "TELEPHONE"
                            telephone = noeudEnf.InnerText.Replace("'", " ")
                        Case "FAX"
                            fax = noeudEnf.InnerText.Replace("'", " ")
                        Case "COURRIEL"
                            courriel = noeudEnf.InnerText.Replace("'", " ")
                        Case "DISTRIBUTEUR"
                            distributeur = noeudEnf.InnerText.Replace("'", " ")
                        Case "DATEVERIF"
                            date_verif = noeudEnf.InnerText.Replace("'", " ")
                        Case "SAC"
                            sac = noeudEnf.InnerText.Replace("'", " ")
                        Case "CONTROLEUR"
                            controleur = noeudEnf.InnerText.Replace("'", " ")
                        Case "REF"
                            ref = noeudEnf.InnerText.Replace("'", " ")
                        Case "MISE_EN_SERVICE"
                            dateMES = noeudEnf.InnerText.Replace("'", " ")
                        Case "ANNEE"
                            anne = noeudEnf.InnerText.Replace("'", " ")
                        Case "DUREE"
                            duree = noeudEnf.InnerText.Replace("'", " ")
                        Case "MARQUE"
                            marque = noeudEnf.InnerText.Replace("'", " ")
                        Case "MODELE"
                            modele = noeudEnf.InnerText.Replace("'", " ")
                        Case "NORME"
                            norme = noeudEnf.InnerText.Replace("'", " ")
                        Case "NUM"
                            num = noeudEnf.InnerText.Replace("'", " ")
                        Case "OBSERVATION"
                            observation = noeudEnf.InnerText.Replace("'", " ")
                        Case "TYPE"
                            typeEPI = noeudEnf.InnerText.Replace("'", " ")
                        Case "RESULTAT"
                            resultat = noeudEnf.InnerText.Replace("'", " ")
                    End Select
                Next
            Next
     
            'MsgBox(verifBDD_Entreprise("entreprise4", "adresse", "61300", "", "0233050505", "", "contact@entreprise.fr", ""))
            If (verifBDD_Entreprise(NomEntreprise, adresse, codepostal, ville, telephone, fax, courriel, distributeur) = True) Then
                ' MsgBox("l'entreprise est enregistrer")
                updatecontrolemail(NomEntreprise, "0")
                If (verifBDD_EPI(NomEntreprise, marque, num) = True) Then
                    ' MsgBox("l'epi est enregistrer")
                    If (verifBDD_visite(NomEntreprise, marque, num, date_verif) = True) Then
                        ' MsgBox("visite deja enregistrer")
                    Else
                        ' MsgBox("visite non enregistrer")
                        insererBDD_Visite(NomEntreprise, marque & "-" & num, date_verif, sac, controleur, ref)
                    End If
                Else
                    ' MsgBox("l'epi n'est pas enregistrer")
                    insererBDD_EPI(NomEntreprise, typeEPI, norme, marque, modele, num, anne, duree, resultat, observation, dateMES)
                    insererBDD_Visite(NomEntreprise, marque & "-" & num, date_verif, sac, controleur, ref)
                End If
            Else
                ' MsgBox("l'entreprise n'est pas enregistrer")
                insererBDD_entreprise(NomEntreprise, adresse, codepostal, ville, telephone, fax, courriel, distributeur, controleur)
                insererBDD_EPI(NomEntreprise, typeEPI, norme, marque, modele, num, anne, duree, resultat, observation, dateMES)
                insererBDD_Visite(NomEntreprise, marque & "-" & num, date_verif, sac, controleur, ref)
            End If
     
     
            'mailforSaveEPI(NomEntreprise, courriel, date_verif, "")
            ' ne pas placer l'envoie de mail ici sinon cela envoie un mail pour chaque doc xml
            deplaceXMLtoDossierSauvegarde(pathfile)
    la première procédure traite chaque fichier d'un répertoire grâce a la 2éme



    ps : le deuxième script est fait pour mon arborescence xml il faut modifié pour la tienne


    cordialement

    si tu es perdu clique ici
    langage connus : xhtml/css , ASP.NET/VB.NET , JS, JQuery , PHP , SQL, PL/SQL, JAVA,
    BI : DataStage ,Essbase , BO , Microsoft BI , SAS, Talend, Cognos, Qliqview

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup Alex61

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

Discussions similaires

  1. Manipuler plusieurs fichiers xml dans une macro VB
    Par rhavena dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/08/2014, 09h39
  2. [XL-2003] Importer plusieurs fichiers XML dans Excel 2003
    Par atcren dans le forum Excel
    Réponses: 1
    Dernier message: 05/10/2009, 12h45
  3. Réponses: 1
    Dernier message: 10/06/2009, 11h01
  4. import de plusieurs fichiers XML dans Access 2003
    Par frdek dans le forum Access
    Réponses: 7
    Dernier message: 09/08/2008, 19h39
  5. [Débutant] Lire plusieurs fichiers txt dans un répertoire
    Par leneuf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/10/2006, 12h39

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