[résolu] transformer string en array (maladie ?)

transformer string en array (maladie ?) [résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 26-06-2007 à 13:59:25    

Bonjour tout le monde,
je suis sur la création d'une fonction sous access, qui vise à faire un découpage dynamique selon un chaine de caracteres passée en parametres.
J'ai une chaine de 256 caractères (alpha numériques + espace), que je souhaite découper selon un mode balancé en parametres.
ex :  
sur la chaine 01234567890123,  
je souhaiterais que si je balance en parametres la chaine suivante :  
- "4,6,4", j'obtienne un découpage dans 3 colonnes :  
champ 1 : "0123"
champ 2 : "456789"
champ 3 : "0123"
- "2,2", j'obtienne un découpage dans 2 colonnes :
champ 1 : "01"
champ 2 : "23"
 
En partant de cette idée, je compte faire mon découpage avec la fonction mid(), mais je ne sais pas si une fonction existe déjà pour transformer finalement un string en array, ce qui me permettrait de simplifier mon raisonnement par la suite...
 
Auriez vous une idée à me proposer ?
 
Merci d'avance.
JP


Message édité par jpcheck le 26-06-2007 à 17:21:38
Reply

Marsh Posté le 26-06-2007 à 13:59:25   

Reply

Marsh Posté le 26-06-2007 à 14:59:26    

bon première étape : connaitre le nombre d'éléments à traiter
j'ai fait une fonction qui me retourne le nombre d'éléments séparés par une virgule.
maintenant je suis sur la fonction qui va me renvoyer les éléments en connaissant leur nombre.
 
je passe donc par mon compteur de virgule,
puis trois variables où je stocke les unités, dizaines et centaine de l'élément,
reste à pouvoir redimensionner progressivement mon array ?
Est-ce possible ?
merci.

Reply

Marsh Posté le 26-06-2007 à 15:10:25    

Pourquoi ne pas etre resté sur ton idée d'utiliser mid() ?  
Si tu connais le nombre de virgules, extraire les différents nombres passés en paramètres doit etre aisé et le mid passe tout seul.
 
Pour les extraire, encore un mid(StrParam, 0, posVirgule-1)  :whistle:  avec un InStr() qu'on "décale" pour rendre la position de la virgule posVirgule = InStr(StrParamTemp, ',') et StrParam = Right(StrParam, StrParam.Len - posVirgule) à chaque boucle.
 
J'ai pas trop compris l'apport de l'array en ce sens  :??:

Reply

Marsh Posté le 26-06-2007 à 15:41:59    

Bonjour,
Une proposition :
    MaLigne = "01234567890123"
    mesvaleurs = Split("2,3,5", "," )
    deb = 1
    For i = O To UBound(mesvaleurs)
        MsgBox (Mid(MaLigne, deb, CInt(mesvaleurs(i))))
        deb = deb + mesvaleurs(i)
    Next
Ca répond à la question ?

Reply

Marsh Posté le 26-06-2007 à 16:11:29    

:love: c'est exactement ca merci :)
:love:  
je fais la suite, et je reviens si g un pb :)

Reply

Marsh Posté le 26-06-2007 à 16:17:13    

tu veut de mettre un string dans la raie ? :ouch:

Reply

Marsh Posté le 26-06-2007 à 17:17:18    

MagicBuzz a écrit :

tu veut de mettre un string dans la raie ? :ouch:


C'est plus facile qu'avec un caleçon Non ? :cry:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed