Declaration de variables

Signaler
Messages postés
5
Date d'inscription
samedi 24 mars 2012
Statut
Membre
Dernière intervention
21 juillet 2012
-
 Utilisateur anonyme -
bonjour a tous,

voila mon probleme
je dois faire un split dans un fichier csv qui contient 606 lignes
est il possible de declarer 606 variable de ce type 'a1,a2,a3,a4,.............a603,a604,a605,a606'
et de faire un split dans une boucle de ce style :



For i = 1 to 606
a&i = Split(nom(i), ";")
For c = 0 To UBound(a&i)
Next c
Next i

merci d'avance

10 réponses

Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour,

Si ton problème est de lire un fichier ligne par ligne, regardes :
Open, Close, Line Input.

"qui contient 606 lignes "
Si Si Si Si Si Si Près Si sans si si si si sans si si près :)
(Private Joke)

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
5
Date d'inscription
samedi 24 mars 2012
Statut
Membre
Dernière intervention
21 juillet 2012

bonjour NHenry et merci de ta reponse tres rapide

en fait je sais lire le fichier csv, avec Open, Close, Line Input
le fichier csv contient 606 lignes et 230 colonnes chaque lignes sont dans les variables de nom(1) a nom(606)
declaré dans dim nom() as string
et je veux avoir une variable numerotée (a1,a2,a3,a4,.............a603,a604,a605,a606 )pour decouper chaque lignes a l'aide de split

merci d'avance
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Bonjour,

Ce que tu veux faire n'est pas optimal
Tu peux par contre, faire un tableau de structure contenant la liste des champs :

Type MonType
MesChamps() As string
End Type

Dim MesLignes() as MonType

Dans ce cas, regardes l'instruction REDIM.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Bonjour,

Je ne comprends personnellement pas vraiment le problème !
Que ton fichier fasse 1 ou 606 lignes, le traitement par split se fait sur chaque ligne, chaque ligne étant à lire par Line Input.
Mais avant d'aller plus loin, trois questions s'imposent :
- quel séparateur est utilisé, dans ton csv ?
- quel est le but précxis de cet éclatement par split ?
- et- surtout : es-tu bien certain de développer sous VB6 (la présente section) et non sous VBA (le VBA de Excel, par exemple) ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
5
Date d'inscription
samedi 24 mars 2012
Statut
Membre
Dernière intervention
21 juillet 2012

bonjour ucfoutu merci de ta réponse

le séparateur utilisé est le point-virgule
je développe sur VB6
et je veut éclater par split pour mettre le contenu du fichier dans un flexgrid pour pouvoir modifier les cellules


j'arrive a le faire mais le problème est que je dois le faire ligne par ligne
Dim nom() As String
Dim a1(),a2(),a3() ........... As String


a1 = Split(nom(0), ";")
For i = 0 To UBound(a1)
Next i
a2 = Split(nom(0), ";")
For i = 0 To UBound(a2)
Next i
a3= Split(nom(0), ";")
For i = 0 To UBound(a2)
Next i
a4= ............... etc

je recherche une solution simplifiée dans une boucle For Next ou autre

merci
Messages postés
5
Date d'inscription
samedi 24 mars 2012
Statut
Membre
Dernière intervention
21 juillet 2012

bonjour ucfoutu merci de ta réponse

le séparateur utilisé est le point-virgule
je développe sur VB6
et je veut éclater par split pour mettre le contenu du fichier dans un flexgrid pour pouvoir modifier les cellules


j'arrive a le faire mais le problème est que je dois le faire ligne par ligne
Dim nom() As String
Dim a1(),a2(),a3() ........... As String


a1 = Split(nom(0), ";")
For i = 0 To UBound(a1)
Next i
a2 = Split(nom(1), ";")
For i = 0 To UBound(a2)
Next i
a3= Split(nom(2), ";")
For i = 0 To UBound(a3)
Next i
a4= ............... etc

je recherche une solution simplifiée dans une boucle For Next ou autre

merci
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Je ne vois dans ton code aucun line Input ! Ni, d'ailleurs aune instruction Open !
Et ne n'y vois rien, non plus, sur la méthode utilisée pour alimenter ta flexgrid !
Alors : si tu veux une réponse adaptée ===>> montre ce que tu as écrit !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
5
Date d'inscription
samedi 24 mars 2012
Statut
Membre
Dernière intervention
21 juillet 2012

Timer1.Interval = 1000
With CommonDialog1
.DialogTitle = "ouverture fichier"
.CancelError = True
.Filter = "csv(*.csv)|*.csv"
.FilterIndex = 1
.InitDir = "C:"
.FileName = "cg1.csv"
On Error GoTo Annuler
.ShowOpen
Open .FileName For Input As #1
For i = 0 To 606
nom(i) = Input(0, #1)
Line Input #1, nom(i)
Next i
End With
Close #1

a1 = Split(nom(0), ";")
For i = 0 To UBound(a1)
Next i
a2= Split(nom(1), ";")
For i = 0 To UBound(a2)
Next i
a3= Split(nom(5), ";")
For i = 0 To UBound(a3)
Next i

Grille2.Rows = 230
Grille2.Cols = 606

For i = 1 To Grille2.Rows - 1
Grille2.TextMatrix(i, 0) = CStr(i)
Next i

For i = 0 To Grille2.Cols - 1
Grille2.ColAlignment(i) = 6
Next i

For i = 0 To UBound(a1) - 1
Grille2.TextMatrix(i, 1) = a1(i)
Grille2.TextMatrix(i, 2) = a2(i)
Grille2.TextMatrix(i, 3) = a3(i)
etc .......
next i

Bonsoir,

Forum Débutants donc...
je développe sur VB6
Si c'est pour ton boulot, je peux le comprendre, sinon c'est une grosse erreur !

-----
Bonsoir Nicolas,

Si Si Si Si Si Si Près Si sans si si si si sans si si près :)
(Private Joke)


Si six scies scient cent cyprès, combien de scies scient six cent cyprès ?

Je sais que ma contribution n'a aucun rapport avec la discussion mais tu m'as bien fait rire...

Bonjour,

Cela fait longtemps que je n'utilise plus VB6, mais je passerais par ADO. Microsoft l'explique par là.

et par là.

et par là.

et là.

Rendu-là, je suis tanné.