begin process at 2008 07 21 00:32:19
1 213 530 membres
431 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : decoupage chaine de caractère [ Algorithme / Divers ] (bobby3)

decoupage chaine de caractère le 16/05/2008 15:41:55

bobby3
Bonjour à tous
Voila dans le cadre d'un application sous vb 2005 il faut que j'extraie certaine donné d'un fichier xml
Pour ca pas de probleme mais les données récupéré sous sous la forme <menu>Production</menu> ou    <sousmenu>Menuiseries1</sousmenu>.J'aurai pu récupérér directement ce qu'il y a à l'intérieur des balises mais  Je suis obligé de les récuperer comme ca car il faut que je les trie ( mettre celle avec les balises <menu> dans un tableau de chaine appelé menu et celle avec les balises <sousmenu> dans un autre tableau, j'utilise Left pour savoir lesquels vont dans tel  ou teltableau)). Le probleme est que un coup que mes données sont récupérés, triés et tout ca, j'aurai besoin  d'avoir accès à ce qu'il y a à l'intérieur des balises, et j'ai pas trouvé de fonction, meme sur msdn, qui me fasse en sorte que je puisse récupérer las sous chaine comprise entre le 7ème caractère et le 7ème caractère à partir de la fin.
Si vous avez une fonction ou une technique pour pallier à ce probleme, vos reponses sont les bienvenus
Merci d'avance

Re : decoupage chaine de caractère le 16/05/2008 15:48:50

casy
Membre Club
Et SubString ne sait pas faire ça ??????

---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]

Re : decoupage chaine de caractère le 16/05/2008 15:49:51

Renfield
(Admin CS)
joues avec les objets qui tournent autour de l'XML

Re : decoupage chaine de caractère le 16/05/2008 16:16:53

bobby3
merci pour vos réponses
casy non substring ne sait pas faire ca en tout cas pas en visual basic (en php on peut je croit), en vb substring a 2 paramêtre, la position de départ et et le nombre de caractère a selectionner a partir de cette position, mais on ne peut pas selectionner la position a partir de la fin pour aller vers le début ( c'est d'ailleurs un gros manque lorsque comme moi on ne sait pas le nombre de caractère que l'on va récupérer)
Renfield tu as raison avec xpath par exemple il ya moyen de controler très facilement les balises et leurs contenus
Mais c'est bon j'ai trouvé la solution, ce que j'ai fait c'est au lieu de renvoyer un tableau avec toute les données dedans j'ai retourné deux tableau dans lequel j'ai fait le tri en meme temps que je leur ais assigné des chaines

i = Listmenu.Count

' on compte le nombre de menu qu'il a trouvé

For j = 0 To i - 1

'on va chercher les 4 premier caractères des chaines

chaine = Microsoft.VisualBasic.Left(Listmenu(j).OuterXml, 4)

If (chaine = "<men") Then' si la balise est de la forme <menu> on met la chaine dans un tableau de menu

z = z + 1

tableauMenu(z) = Listmenu(j).InnerText

Else' sinon on met la chaine dans un tableau de sous menu

k = k + 1

tableau_sousMenu(k) = Listmenu(j).InnerText

EndIf

Next

Catch ex As Exception 'au cas ou l'individu n'aurai droit a aucun menu

MsgBox(

"Pas de menu trouvé")

EndTry

merci quand meme pour vos réponses!

Re : decoupage chaine de caractère le 16/05/2008 16:20:38

casy
Membre Club
"...le nombre de caractère a selectionner a partir de cette position, mais on ne peut pas selectionner la position a partir de la fin..."

Et le nombre de caractère à sélectionner ne serait-il pas par hasard, la longueur totale - la position à partir de la fin ??????

Substring (ou Mid en VB6) permet toutes les manipulations de découpages de chaines. Les fonctions Left, Right, .... ne sont en réalité que des surcharges de la fonction de base Substring.

---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]

Re : decoupage chaine de caractère le 16/05/2008 16:22:02

Renfield
(Admin CS)
entre le 7eme du début et le 7eme  a partir de la fin

a.Substring(7, a.length-14)

non ?

Re : decoupage chaine de caractère le 16/05/2008 19:03:58

Kevin.Ory
Si 

Mais moi aussi je conseil de gérer les fichiers XML avec les outils XML fourni par le framework au lieu de "s'amuser" avec des SubString.

    Dim Doc As New Xml.XmlDocument
    Doc.Load("C:\Fichier.xml")


Après tu listes tes "menu" ou tes "sousmenu" plus ou moins comme tu l'entend, dans des boucles. Genre:
   
    For Each Elem As Xml.XmlElement In Doc.DocumentElement.ChildNodes
        Console.WriteLine("Menu: " & Elem.InnerText)
        For Each SousElem As Xml.XmlElement In Elem.ChildNodes
            Console.WriteLine("Soumenu: " & Elem.InnerText)
        Next
    Next

Easy

Re : decoupage chaine de caractère le 16/05/2008 19:38:02

bobby3
tu as raison renfield je ne croyai que chercher le nombre de caractère de la chaine a chaque fois était une opération trop lourde, mais ca a l'air assez basique
de tout facon mon probleme est resolé
le sujet est clos
merci a tous



Classé sous : caractère, probleme, chaine, decoupage, balises

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS