VB5 fonction split

dokizo - 2 nov. 2012 à 19:14
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 4 nov. 2012 à 03:10
Bonjour
je code en visual basic 5 pour un projet d'info et j'ai un problème avec la fonction "split". En fait j'ai besoin de récupérer dans chaque case d'un tableau de string deux éléments. Par exemple ce tableau T() est rempli de cette manière:
T()
1, 7.16907263, 11.4884319 <-- 1e case de T()
2, 10.10569, 16.3385048 <-- 2e case de T() ...
3, 12.7058954, -8.69292927
4, 8.30995464, 1.26267815
5, -0.286992937, -3.18386889
...

La partie de mon code qui coince est celle ci

k = 0
For x = (i + 1) To (j - 1) Step 1
Csplit() = T(x).split(",")
T_x_noeud(k) = CSng(Csplit(2))
T_y_noeud(k) = CSng(Csplit(3))
k = k + 1
Next x

J'aimerais que:
T_x_noeud(0) = 7.16907263
T_y_noeud(0) = 11.4884319
ect..

Mais un message s'affiche: "Erreur de compilation qualificateur incorrect"
et la ligne "Csplit() = T(x).split(",")" est surlignée.

Merci de votre aide je suis vraiment novice en programmation

13 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
2 nov. 2012 à 19:34
Bonjour,

Et en retirant les () de Csplit() ?

---------------------------------------------------------------------
[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
---
0
Bonsoir,
même problème en retirant les parenthèses apres Csplit. Le message parlant de qualificateur incorrect réapparait. En fait ce n'est pas toute la ligne
"Csplit() = T(x).split(",")"
qui est surligné mais seulement "T":
"Csplit() = T(x).split(",")"
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
2 nov. 2012 à 21:00
Bonjour,

C'est pas plutôt Split(T(x),",") ?

---------------------------------------------------------------------
[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
---
0
Bonsoir,
alors avec cette modification ça ne marche toujours pas mais le message d'erreur change cette fois ci c'est:
"Procédure Sub ou Function non définie"
et il me surligne Split
0

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

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 nov. 2012 à 04:25
Bonjour,

Comment et où as-tu déclarer la fonction Split ?

---------------------------------------------------------------------
[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
---
0
Bonjour,
voici ma déclaration de variables

Dim T() As String
Dim T_x_noeud() As Single
Dim T_y_noeud() As Single
Dim Csplit() As Variant
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 nov. 2012 à 15:18
Bonjour,

Dim Csplit() As String
Plutôt ?

Sinon, je repose ma question :
Comment et où as-tu déclarer la fonction Split ?

---------------------------------------------------------------------
[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
---
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
3 nov. 2012 à 17:22
Salut,

As tu essayé d'affecter le tableau en meme temps que sa déclaration

Dim Csplit() As String = Split(T(x), ",")


D'autre part, es tu sur que T() est bien initialisé ?

bye...
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 nov. 2012 à 18:02
Bonjour,

yann_lo_san, en VB6, comme en VB5, il n'est pas possible e déclarer et d'affecter en même temps, sauf pour le As New.

---------------------------------------------------------------------
[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
---
0
Bonsoir,
Alors oui j'ai essayé Csplit comme string mais ça ne marche toujours pas.
Quand vous dites d'initialiser le tableau qu'est ce que ça veut dire exactement. Voici tout mon code

Private Sub afficher_Click()

Dim T() As String
Dim T_x_noeud() As Single
Dim T_y_noeud() As Single
Dim Csplit() As Variant



Open "C:\Users\Documents\fichier.inp" For Input As #1

i = -1

While Not EOF(1)

i = i + 1

ReDim Preserve T(i)

Line Input #1, T(i)

Wend

i = 0
While Not (T(i) = "*Node")
i = i + 1
Wend

j = 0
While Not (T(j) = "*Element, type=CPS3")
j = j + 1
Wend

k = 0
For x = (i + 1) To (j - 1) Step 1
Csplit = Split(T(x), ",")
T_x_noeud(k) = CSng(Csplit(2))
T_y_noeud(k) = CSng(Csplit(3))
k = k + 1
Next x



End Sub

Peut que vous verrez une grossière erreur.
Merci d'avance
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 nov. 2012 à 19:48
Bonjour,

Tu disais :
"Procédure Sub ou Function non définie"
et il me surligne Split

J'ai demandé :
Comment et où as-tu déclarer la fonction Split ?

Et tu n'as toujours pas répondu ...

---------------------------------------------------------------------
[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
---
0
Bonsoir Nhenry,
dans mon message précédent je vous ai mis tout mon code. Je ne sais pas du tout comment on déclare la fonction Split je pensais qu'il suffisait de l'utiliser sans avoir besoin de "prevenir"
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
4 nov. 2012 à 03:10
Bonjour,

D'accord, VB5 n'implémente pas Split :
http://support.microsoft.com/kb/188007

---------------------------------------------------------------------
[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
---
0
Rejoignez-nous