Bonjour,
je n'en crois pas mes yeux : j'ai une fonction en vb.NET qui ne marche QUE si elle a un point d'arrêt. Diabolique.![]()
Il s'agit de lire un petit fichier XML, grâce à la classe XmlTextReader. La propriété .Name du lecteur ne semble pas mise à jour lorsqu'il n'y a pas de point d'arrêt...
Voici mon code vb (un extrait) :
et le bout de Xml que c'est censé lire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Do : Loop While (.Read() AndAlso (.Name <> "unites_oeuvre")) 'pour trouver la balise ouvrante de ma liste d'unités d'oeuvres If (Not .IsEmptyElement) Then Do While (.Read()) If (.Name = "uo") Then objUO = New unite_oeuvre('GetAttribute(blablabla)) 'les attributs donnent les paramètres du constructeur de ma classe .unites_oeuvre.Add(objUO) 'ajout dans une collection Else : Exit Do End If Loop End If
En pas à pas, ou même avec un point d'arrêt juste avant la condition .Name="uo", ça marche, mais sinon la boucle n'est jamais exécutée (.Name="uo" s'évalue toujours à faux).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <unites_oeuvre> <uo nom="UO_Test" id="38" description="test38" /> <uo nom="UO_Test_" id="39" description="test39" /> <unites_oeuvres />
Pour info, j'utilise vs 2003. Est-ce quelqu'un a une idée de l'origine du problème ? Parce que moi je vois vraiment pas... Le plus drôle, c'est que je peux pas déboguer (puisque quand je veux voir d'un peu plus près, ça marche...)![]()
Merci d'avance !
--
Rom1
Partager