Construire un tableau 2D à partir d'un fichier texte

quentin22breizh Messages postés 34 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 27 avril 2017 - 30 juil. 2014 à 22:03
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 31 juil. 2014 à 11:43
Bonsoir à tous,

Je me permets de vous poster ce message car je souhaiterai créer un tableau 2D à partir d'un fichier texte type csv";". J'ai fait une esquisse de code, mais je n'y arrive pas. Je vous la donne tout de même afin de présenter les débuts:
'calcul du nombre de colonne a déclarer
Dim Tab_temp() As String = Split(lines(1), ";")
Dim Nbcolonnes As Integer = Tab_temp.Count


'Création du tableau à deux dimensions pour nettoyage des colonnes
Dim tab(Nblignes, Nbcolonnes) As String
Dim X As Integer
Dim Y As Integer
For X = 0 To Nblignes - 1
For Y = 0 To Nbcolonnes - 1
Tab_temp() = Split(lines(X), ";")
tab(X, Y) = 0
Next
Next

4 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
31 juil. 2014 à 07:15
Bonjour

Vu que
                tab(X, Y) = 0

Chaque valeur sera 0...

Essaye ça:
        For X = 0 To Nblignes - 1
            Tab_temp() = Split(lines(X), ";")'il suffit de le faire une fois par ligne, pas besoin à chaque colonne.
            For Y = 0 To Nbcolonnes - 1  
                tab(X, Y) = Tab_temp(Y)
            Next
        Next

1
quentin22breizh Messages postés 34 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 27 avril 2017
31 juil. 2014 à 07:58
Bonjour Whismeril,

Merci de ta réponse, le
tab(X, Y) = 0

était un oubli car il me refusait la commande
Tab_temp() = Split(lines(X), ";")
donc je n'avais pas cherché plus loin. Merci de ton aide en tout cas, je vais tester ça.

A tout Hasard, sais tu comment je pourrai supprimer une colonne donnée?
Exemple : supprimer la colonne 17
0
quentin22breizh Messages postés 34 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 27 avril 2017
31 juil. 2014 à 10:54
A tout hasard, aurai tu une idée de comment faire pour faire la fonction inverse?

En clair, partir de mon tableau 2D et attaquer un tableau 1D. J'ai bien trouvé des infos avec la fonction "Join" mais je ne vois pas comment faire

Merci d'avance pour ton aide
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
31 juil. 2014 à 11:43
Pour "supprimer" la colonne 17 tu peux passer l'index
For Y = 0 To Nbcolonnes - 2'attention au moins 2!!!  
                if Y < 17 then
                     tab(X, Y) = Tab_temp(Y)
                else
                     tab(X, Y) = Tab_temp(Y +1 )
                end if
            Next




mais ça n'est pas trés evolutif.

Ensuite pour passer d'un tableau à 1 dimension vers un string c'est effectivement String.Split(), mais je ne pense pas que ça marche pour un tableau 2D
0
Rejoignez-nous