Décomposer une chaîne contenant des Tableaux
Publié : mer. 01/avr./2020 16:58
Salut, que pensez vous de ceci ?
Alors ça sert à décomposer une chaîne de caractères qui contient des Tableaux.
Chaque Tableau est numéroté et mis dans la Map:
Alors ça sert à décomposer une chaîne de caractères qui contient des Tableaux.
Chaque Tableau est numéroté et mis dans la Map:
Code : Tout sélectionner
; Créé par Dieppedalle David le 01/04/2020.
; Décompose une chaîne contenant des Tableaux.
; Chaque Tableau trouvé serra indexer dans la Map.
Global NewMap MapRegistreTableau.s()
Global NewList ListePositionAgrapheOuvrante.i()
Procedure.i DecomposeTableau(Tableau.s)
If Not CountString(Tableau.s, "[") = CountString(Tableau.s, "]")
ProcedureReturn 0
EndIf
For Index.i = 1 To Len(Tableau.s) + 1
Caractere$ = Mid(Tableau.s, Index.i, 1)
If Caractere$ = "["
AddElement(ListePositionAgrapheOuvrante.i())
ListePositionAgrapheOuvrante.i() = Index.i
ElseIf Caractere$ = "]"
If ListSize(ListePositionAgrapheOuvrante.i()) > 0
DernierePositionAgrapheOuvrante.i = ListePositionAgrapheOuvrante.i()
DeleteElement(ListePositionAgrapheOuvrante.i(), 1)
Else
ProcedureReturn 0
EndIf
NumeroTableau.i + 1
MapRegistreTableau.s("Tab-" + Str(NumeroTableau.i)) = Mid(Tableau.s, DernierePositionAgrapheOuvrante.i, (Index.i + 1) - DernierePositionAgrapheOuvrante.i)
EndIf
Next
EndProcedure
Tableau.s = "[123, [234, 567, 789], Abc, [234, [345, [456, [654, [147, 852, 369], [678, [789, [987, Uvw, 852], Def, 147], Ghi], Rst, 258], Mlk], Jkl, [123, 456, 789], 567], Mno], Pqr, 369]"
DecomposeTableau(Tableau.s)
ForEach MapRegistreTableau.s()
Debug MapKey(MapRegistreTableau.s()) + " = " + MapRegistreTableau.s()
Next