VB5 fonction split

Signaler
-
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
-
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

Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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
---
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(",")"
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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
---
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
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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
---
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
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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
---
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
21
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...
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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
---
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
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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
---
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"
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
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
---