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

Signaler
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017
-
Messages postés
16110
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 juillet 2021
-
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

Messages postés
16110
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 juillet 2021
554
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

Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017

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
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017

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
Messages postés
16110
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 juillet 2021
554
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