Vb

Fermé
deck10 - 30 déc. 2003 à 15:38
 Utilisateur anonyme - 31 déc. 2003 à 08:43
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
A voir également:

5 réponses

Utilisateur anonyme
30 déc. 2003 à 16:03
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+ ?
0
oui, c'est que je lis cette forme
Merci de ta réponse, encore
=)

@+deck10
0
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
0
non, c'est bon j'ai résolu mon pb avec ta solution.Je l'ai un peu modifié et puis ca marche.

@+deck10
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
31 déc. 2003 à 08:43
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
0