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

Macros et VBA Excel Discussion :

extraction de texte d'un fichier xml


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Par défaut extraction de texte d'un fichier xml
    Bonjour à tout le monde.
    Il faut que je trouve ce qui est écrit entre deux marques dans un fichier XML.
    J'ai fait déjà ce bout de 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
    Sub lanciaFindTXT()
    Dim lien As String, trova As String
    Dim risp
    r = ActiveCell.Row
    lien = Range("perc").Value & Cells(r, 2).Hyperlinks(2).Address
    'trova = InputBox("cosa cercare?")
    trova = "<Allegati>"
    risp = fnFindText(lien, trova)
    MsgBox (risp)
    End Sub
     
     
    Function fnFindText(strFilePath, strSrTxt)
    Dim pos
                 Const ForReading = 1
                 Set FSO = CreateObject("Scripting.FileSystemObject")
                 Set F = FSO.OpenTextFile(strFilePath, ForReading, True)
                 Do While F.AtEndOfStream <> True
                 A = F.readline
                 If InStr(A, strSrTxt) <> 0 Then
                       fnFindText = InStr(A, strSrTxt)
                 Exit Do
                 End If
                 Loop
                 F.Close
    End Function
    Avec ceci, je suis censé déterminer la position de la suite "<Allegati>", mais j'obtiens en réalité des nombres fantaisistes (par exemple 5, alors que la suite se trouve à la ligne 12, après une bonne cinquantaine de caractères).
    Comment dois-je faire pour trouver la position "réelle" de la suite de caractères et puis extraire une portion de texte se trouvant entre deux position connues?
    Merci à quiconque peut de faire des suggestions même partielles.

    P.S.: Dans une heure environ je pars en congé; s'il y a des réponses après 17h, je les verrai lundi 28, ne vous étonnez pas de mon silence...

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    s'inspirer de cette discussion

    Sinon sans avoir un exemple précis de la chaîne source et du résultat attendu …

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Par défaut
    Merci, Marc-L. Effectivement ça a l'air intéressant et je ne l'avais pas trouvé, dans mes recherches sur ce site.
    Au passage, j'apprends qu'on dit balises et non pas marques!
    Voici un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    (...)
    <Allegati>
            <Allegato nome_file_server="7100101A_20131018125238.A01" nome_file="Funding_Proposal_All._1.doc">Funding_Proposal_All._1.doc</Allegato>
            <Allegato nome_file_server="7100101A_20131018125238.A02" nome_file="All.2.zip">All.2.zip</Allegato>
            <Allegato nome_file_server="7100101A_20131018125238.A03" nome_file="Sintesi_lavori._All.3.doc">Sintesi_lavori._All.3.doc</Allegato>
    </Allegati>
     
    (...)
    Je voudrais en sortir les trois noms de fichiers se terminant par ".doc" ou ".zip" dans autant de variables. (Il peut y avoir des XLS, PDF et toute autre extensions.)
    A mon retour de vacances, je regarderai de plus près les pages indiquées; si entre-temps quelqu'un a des propositions plus ciblées, je suis preneur!
    Merci, à très bientôt.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il y a quand même des commandes spécifiques pour rechercher des données dans des fichiers 'xml':
    http://arkham46.developpez.com/artic...b/?page=page_4

Discussions similaires

  1. [débutant]extraction des données d'un fichier xml simple
    Par ekram dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 14/03/2007, 12h24
  2. [FLASH 8] Text dynamique dans fichier .xml
    Par scorrom dans le forum Flash
    Réponses: 3
    Dernier message: 14/01/2007, 17h54
  3. Extraction de texte dans un fichier
    Par chris91 dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2006, 16h09
  4. Extraction de donnés dans un fichier XML
    Par ANISSS dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 27/01/2006, 13h16
  5. Récupérer du texte d'un fichier xml entre deux balises
    Par manutudescends dans le forum Format d'échange (XML, JSON...)
    Réponses: 24
    Dernier message: 30/11/2005, 18h29

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