Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Equivalent Split pour Structure

8 réponses
Avatar
Bonjour,

Est-il possible de faire 1 Split ou équivalent sur 1 Structure ? (en
espérant que l'on comprenne ma question)

Exemple pour éviter de faire ceci :
toto(0).a=1
toto(0).b=2
toto(1).a=10
toto(1).b=20

Merci d'avance,
Stéphane

8 réponses

Avatar
Gillard
vas lire ceci cela devrait t'aider

http://www.vbfrance.com/forum/sujet-INITIALISATION-STRUCTURE_1217805.aspx


<Stéphane> wrote in message news:
Bonjour,

Est-il possible de faire 1 Split ou équivalent sur 1 Structure ? (en
espérant que l'on comprenne ma question)

Exemple pour éviter de faire ceci :
toto(0).a=1
toto(0).b=2
toto(1).a
toto(1).b

Merci d'avance,
Stéphane




Avatar
Zoury
... nope! :)
Peux-tu nous donner un exemple de ce que tu as comme valeurs au départ et ce
que tu cherches à obtenir en sortie ?
Note que dans tous les cas, tu devras vraisemblablement te faire une
fonction, il n'y a rien de built-in.

Yanick Lefebvre
<Stéphane> a écrit dans le message de news:

Bonjour,

Est-il possible de faire 1 Split ou équivalent sur 1 Structure ? (en
espérant que l'on comprenne ma question)

Exemple pour éviter de faire ceci :
toto(0).a=1
toto(0).b=2
toto(1).a
toto(1).b

Merci d'avance,
Stéphane




Avatar
Merci


"Gillard" <gillard_georges@@@@@@@@@hotmail.com> a écrit dans le message de
news:
vas lire ceci cela devrait t'aider

http://www.vbfrance.com/forum/sujet-INITIALISATION-STRUCTURE_1217805.aspx


<Stéphane> wrote in message news:
Bonjour,

Est-il possible de faire 1 Split ou équivalent sur 1 Structure ? (en
espérant que l'on comprenne ma question)

Exemple pour éviter de faire ceci :
toto(0).a=1
toto(0).b=2
toto(1).a
toto(1).b

Merci d'avance,
Stéphane






Avatar
Bonjour,

Peux-tu nous donner un exemple de ce que tu as comme valeurs au départ




Il n'y a nulle part
des valeurs de départ.
(ca rime)

C'est pour juste initialiser des variables.

J'ai 1 structure avec 1 certain nombre de variables dedans, et 1 tableau as
ma structure.

Disons, que pour initaliser 1 simple tableau de texte, j'avais fait :
dim strtab() as string = "a;z;e;r;t;y;u;i;o;p".split(";")

et j'aurais voulu 1 fonction toute faite pour remplir 1 tableau de structure


"Zoury" a écrit dans le message de news:
%
... nope! :)
Peux-tu nous donner un exemple de ce que tu as comme valeurs au départ et
ce que tu cherches à obtenir en sortie ?
Note que dans tous les cas, tu devras vraisemblablement te faire une
fonction, il n'y a rien de built-in.

Yanick Lefebvre
<Stéphane> a écrit dans le message de news:

Bonjour,

Est-il possible de faire 1 Split ou équivalent sur 1 Structure ? (en
espérant que l'on comprenne ma question)

Exemple pour éviter de faire ceci :
toto(0).a=1
toto(0).b=2
toto(1).a
toto(1).b

Merci d'avance,
Stéphane








Avatar
Jérémy Jeanson
Là je crois que tu en demande un peu beaucoup, de base ça n'existe
pas... à ma connaissance.

Par contre rien ne t'empêche d'utiliser les librairies de reflection et
de coder une telle méthode. Pour t'aider, sur un Type il existe :

.GetProperties() ' qui te permet d'obtenir les propriétés d'un Type
.SetValue() ' qui permet de changer le valeur d'une propriété
.GetValue() ' qui permet de lire la valeur d'une propriété

Avec cela tu devrai être armé pour monter la méthode dont tu as besoin.

--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net
Avatar
Patrice
Je ne sais pas si une syntaxe existe tde base mais tu peux ajouter un
constructeur à ta structure :

Structure s
Sub New(ByVal a As String, ByVal b As Integer)
Me.a = a
Me.b = b
End Sub
Public a As String
Public b As Integer
End Structure
Shared Sub Main()
Dim a() As s = {New s("a", 2), New s("b", 2)}
End Sub

De même pour ton tableau tu aurais pu faire :
Dim strtab() as string={"a","z","e","r" etc }

Après un peit essai de base ti as aussi :
Dim b() As s={New s with {.a="a",.b=2},new s with {.a="b",.b}}
en VB 2008


--
Patrice

<Stéphane> a écrit dans le message de groupe de discussion :

Bonjour,

Peux-tu nous donner un exemple de ce que tu as comme valeurs au départ




Il n'y a nulle part
des valeurs de départ.
(ca rime)

C'est pour juste initialiser des variables.

J'ai 1 structure avec 1 certain nombre de variables dedans, et 1 tableau
as ma structure.

Disons, que pour initaliser 1 simple tableau de texte, j'avais fait :
dim strtab() as string = "a;z;e;r;t;y;u;i;o;p".split(";")

et j'aurais voulu 1 fonction toute faite pour remplir 1 tableau de
structure


"Zoury" a écrit dans le message de news:
%
... nope! :)
Peux-tu nous donner un exemple de ce que tu as comme valeurs au départ et
ce que tu cherches à obtenir en sortie ?
Note que dans tous les cas, tu devras vraisemblablement te faire une
fonction, il n'y a rien de built-in.

Yanick Lefebvre
<Stéphane> a écrit dans le message de news:

Bonjour,

Est-il possible de faire 1 Split ou équivalent sur 1 Structure ? (en
espérant que l'on comprenne ma question)

Exemple pour éviter de faire ceci :
toto(0).a=1
toto(0).b=2
toto(1).a
toto(1).b

Merci d'avance,
Stéphane












Avatar
Bonjour,

Après avoir gratté 1 peu de ce côté, je crois que c'est un peu trop dur pour
moi...

Merci quand même Jérémy.

Stéphane


"Jérémy Jeanson" a écrit dans le message de news:

Là je crois que tu en demande un peu beaucoup, de base ça n'existe pas...
à ma connaissance.

Par contre rien ne t'empêche d'utiliser les librairies de reflection et de
coder une telle méthode. Pour t'aider, sur un Type il existe :

.GetProperties() ' qui te permet d'obtenir les propriétés d'un Type
.SetValue() ' qui permet de changer le valeur d'une propriété
.GetValue() ' qui permet de lire la valeur d'une propriété

Avec cela tu devrai être armé pour monter la méthode dont tu as besoin.

--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net


Avatar
Bonjour,

Je met ici la solution que j'ai retenue grâce à tous les conseils que j'ai
eu (à noter qu'avec cette solution, il faut 1 fonction par structure) :

Tout d'abord, il faut 1 structure :
Public Structure MaStructure

Dim MonEntier As Integer

Dim MaChaine As String

End Structure


Ensuite, dans la même classe que la structure (la fonction provoque 1 erreur
si elle se trouve dans 1 autre classe) :
Public Function SplitMaStructure(ByVal Valeurs_MonEntier As Integer, ByVal
Valeurs_MaChaine As String, ByVal séparateur As Char) As MaStructure()

Try

Dim MesEntiers() As String = Valeurs_MonEntier.Split(séparateur)

Dim MesChaines() As String = Valeurs_MaChaine .Split(séparateur)

If UBound(MesEntiers) = UBound(MesChaines) Then

Dim Résultat(UBound(MesEntiers)) As MaStructure

For i As Integer = 0 To UBound(MesEntiers)

Résultat(i).MonEntier= MesEntiers(i)

Résultat(i).MaChaine = MesChaines(i)

Next

Return Résultat

Else

Return Nothing

End If

Catch ex As Exception

Return Nothing

End Try

End Function


Et enfin, il ne reste plus qu'à remplir un nouveau tableau de structure :
Dim MonTableau() As MaStructure = SplitMaStructure("1;2;3", "A;B;C", ";")




<Stéphane> a écrit dans le message de news:

Bonjour,

Est-il possible de faire 1 Split ou équivalent sur 1 Structure ? (en
espérant que l'on comprenne ma question)

Exemple pour éviter de faire ceci :
toto(0).a=1
toto(0).b=2
toto(1).a
toto(1).b

Merci d'avance,
Stéphane