Declaration de variables

chouby59 Messages postés 5 Date d'inscription samedi 24 mars 2012 Statut Membre Dernière intervention 21 juillet 2012 - 21 juil. 2012 à 11:48
 Utilisateur anonyme - 21 juil. 2012 à 17:50
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

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 juil. 2012 à 12:23
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
0
chouby59 Messages postés 5 Date d'inscription samedi 24 mars 2012 Statut Membre Dernière intervention 21 juillet 2012
21 juil. 2012 à 12:46
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
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 juil. 2012 à 13:13
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 juil. 2012 à 13:54
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chouby59 Messages postés 5 Date d'inscription samedi 24 mars 2012 Statut Membre Dernière intervention 21 juillet 2012
21 juil. 2012 à 14:07
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
0
chouby59 Messages postés 5 Date d'inscription samedi 24 mars 2012 Statut Membre Dernière intervention 21 juillet 2012
21 juil. 2012 à 14:26
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 juil. 2012 à 14:33
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
0
chouby59 Messages postés 5 Date d'inscription samedi 24 mars 2012 Statut Membre Dernière intervention 21 juillet 2012
21 juil. 2012 à 14:52
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
0
Utilisateur anonyme
21 juil. 2012 à 15:51
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...
0
Utilisateur anonyme
21 juil. 2012 à 17:50
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é.
0
Rejoignez-nous