Tableau 2 dimensions

Signaler
Messages postés
188
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
10 avril 2008
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bonjour,

Je souhaite faire un code qui lis les données d'un fichier texte. Ce fichier texte contient plusieurs types de séparateur de données et en fonction de ces séparateurs je stock les données dans différents tableau. Or j'ai un petit problème de stockage des données dans un tableau 2 dimensions.

Voici mon code :

    Dim donnees_PR() As String
    Dim detail_donnees_PR() As String

    donnees_PR = Split(premier_decoupage(2), vbTab)

    For j = 0 To UBound(donnees_PR)
            detail_donnees_PR = Split(donnees_PR(j), " - ")
    Next j

Je commence par découpé les données séparé par une tabulation dans le tableau donnees_PR, puis je redécoupe les données de ce tableau par le séparateur " - " puis stock ces données dans le tableau detail_donnees_PR.

Le pb de mon code je pense que vous l'avez déjà trouvé, j'écrase dans ma boucle for les détails_données à chaque rebouclage.

Je pense qu'il me faudrait passer le tableau donnees_PR en 2 dimensions afin de faire 2 boucle imbriqué pour stocker le nombre de donnees_PR dans la première dimension et les détail_donnees_PR dans la seconde dimension.
Voilà, si quelqu'un sait comment m'aider, qu'il n'hésite pas.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>









Merci d'avance !

Oliv


 
A voir également:

7 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
Suggestion simple :

utilise une listebox invisible toto
Dans ta boucle For...
utilise le tableau detail_donnees_PR  créé par le split pour alimenter ta listbolx toto (additem)
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
Excuse-moi (j'avais l'estomac vide)...

Si maintenant ton but est d'avoir un seul tableau avec, à l'intérieur, toutes les valeurs présentées séparément :

1) tu utilises Replace poour remplacet tos les vnbTabb par des "-"

2) tu "éclates" le résultat par un Split utilisant "-"

bien sur...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
Ouais ... (là j'ai mangé, mais apparemment également bu...et les doigts sont gros ...)

Correction de ma frappe, donc :

1) tu utilises Replace pour remplacer tous les vbTab par des "-"

2) tu "éclates" le résultat par un Split utilisant "-"
Messages postés
188
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
10 avril 2008

Ok la 3ème version me va mieux.
Après manger ca va effectivement mieux, mais attention à l'abus d'alcool et dangereux pour la santé.

Plus sérieusement t'a solution est correct et pourrais répondre à ma question.

Mais j'aurai bien aimé connaitre la solution avec un tableau à 2 dimensions. Histoire de savoir comment ca s'écrit.

De plus connaitre le nombre de donnees_PR ce qui pourrait correspondre à la taille de la 1ère dimensions du tableau pourrait m'interesser.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
47
Salut,

Je en sais pas si c'est ce que tu cherches a faire mais avec un "tableau" à deux dimentions, tu peux essayer ceci:
    Dim j As Integer 
    Dim Donnees_PR() As String 
    Dim Detail_donnees_PR() 

    Donnees_PR =  Split(premier_decoupage(2), vbTab) 
    ReDim Detail_donnees_PR(0 To  UBound (Donnees_PR)) 
    For j  = 0 To UBound(Donnees_PR) 
            Detail_donnees_PR(j) = Split(Donnees_PR(j), " - ") 
    Next j 

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
188
Date d'inscription
mardi 21 décembre 2004
Statut
Membre
Dernière intervention
10 avril 2008

Merci jrivet ton code fonctionne, il répond bien à ma demande.


Cependant je ne comprend quelque chose.

Pourquoi omet tu sur les 2 lignes suivantes de déclarer le type "as string" ?  :
    Dim Detail_donnees_PR() 
    ReDim Detail_donnees_PR(0 To UBound(Donnees_PR)) 
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
47
Salut,
En fait Detail_donnees_PR()  dans mon exemple ne sera pas de type String à la base, mais Variant voila tout.
Certes cela est moins "beau", mais ca fonctionne et c'est rapide à mettre en place. Mais en revanche si tu es à cheval sur la taille mémoire, je te conseille donc de trouver autre chose que le variant.

Tu remarqueras que ma solution ne donne pas le meme résultat que celle de [auteurdetail.aspx?ID= 615490 jmfmarques], donc à toi de voir ce que tu souhaite.
NOTE: ReDim Detail_donnees_PR(0 To  UBound (Donnees_PR))  n'a jamais besoin du type de la variable (REdim et DIM)

@+: =89254 Ju£i?n
Pensez: Réponse acceptée