Vb

Bonjour,
voici ma question:
dans un programme en vb, je traite un fichier séquentiel écrit en xml.
dans ce fichier, je lis par exemple, qui va etre mise dans une string:
<N°Enfant> 2 </N°Enfant>

Je voudrai savoir comment extraire le 2 de la string et la mettre dans un integer?

Merci de me répondre
@+deck10

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. ouais : jai dégainé un peu vite
    bravo d'avoir trouvé
    il fallait faire result=val(mid(zone,InStr(zone, ">")+2,Instr(zone,"<\")-2))
    ou on pouvait décomposer :
    dim deb,fin,ret as integer
    deb=instr(zone,">")+2
    fin=instr(deb,zone,"<")-2
    ret=eval(mid(zone,deb,fin))
    cordialement
    1. non, c'est bon j'ai résolu mon pb avec ta solution.Je l'ai un peu modifié et puis ca marche.

      @+deck10
      1. c'est encore moi,
        mais je crois ( je l'ai essayé),le 2e instr ne correspond pas à la longueur jusquà </enfant> mais au début càd <enfant>
        De plus, le 1er instr enleve bien <enfant>. Avec la fonction val, il transforme jusqu'a ce qu'il un caractère qui n'est pas un chiffre.Donc pour moi le 2e instr me sert à rien.

        Mais maitenant, je me trouve dans cette situation:
        zone= exemple</enfant>

        et la je voudrai enlever la partie </enfant>
        et donc me retrouver avec zone=exemple

        J'espere que vous avez compris (surtout bul, qui m'aide deuis le début)
        Merci de me repondre

        @+deck10
        1. oui, c'est que je lis cette forme
          Merci de ta réponse, encore
          =)

          @+deck10
          1. re bonjour
            si sûr de la "forme", sinon à adapter

            result=val(mid(zone,InStr(zone, ">")+2,Instr(zone,"<")-2))

            parce que là on suppose zone de la
            forme ".....> nombre <....." espaces inclus

            1er Instr recherche le 1er caractère = >
            2ème <
            mid(zone,adresse 1er caractère,adresse dernier carcatère)
            extrait de zone à partir de, jusqu'à
            resul=val(text) tranforme en integer,long...
            dépend de la définition de result dim integer,long ..

            a+ ?