jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
15 déc. 2006 à 16:39
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
15 déc. 2006 à 18:29
Bonjour,
Une très récente discussion sur le forum VB6 me conduit à poser la question suivante sur le forum VB.NET :
Sous VB6, lenmploi de Split me permet d'extraire les chaînes "mot1", "mot2" et "mot3) de la chaine :
"mot1totomot2totomot3" en utilisant la chaîne "toto" comme séparateur.
Les questions :
Question: est-il possible, sous VB.NET, de faire la même chose en utilisant Split ?
----------question1 : si oui, avec quelle syntaxe (avec Split, pas autrement) ?
----------question2 : si non : quelqu'un saurait-il pourquoi VB.NET n'a pas inclus cette possibilité ?
---------------question2a : que faudrait-il alors utiser (autre que split) pour y parvenir sous VB.NET ?
---------------question2b : que devraient alors de préférence écrire sous VB6 ce qui ont l'intention de migrer un jour leur application vers VB.NET ?
Je serais particulièrement reconnaissant à ceux qui voudront bien répondre à ces questions de bien vouloir éviter tout exposé autre que purement technique.
Merci d'avance à ceux qui accepteraient de répondre.
Non apparament, ce n'est pas possilbe, on peut splitter avec plusieurs caractéres mais pas avec un mot.
Donc la solution est, on remplace les "toto" pas un caractere et on split avec ce caractere :
Dim TaString As String = "HellototoWordtoto!!!totoCommenttotovatototutotojmftoto???"
Dim TableauDeDestination As String() = TaString.Replace("toto", System.Convert.ToChar(0)).Split(System.Convert.ToChar(0)),
----
(Coloration syntaxique automatique par Kenji)
__________
Kenji
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 15 déc. 2006 à 16:54
Tu peux trouver la fonction Split dans le namespace Microsoft.VisualBasic. Mais elle n'a pas beaucoup d'interet. EN effet quel est l'interet de faire du VB6 sous .Net autant rester en VB6
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 déc. 2006 à 16:59
Merci merci (je l'avais lu...)
Mais quid de la question finale (en réalité la finalite même de ce sujet) :
---------------question2b : que devraient alors de préférence écrire sous VB6 ceux qui ont l'intention de migrer un jour leur application vers VB.NET ?
En effet casy, je n'avais pas pour les chaines.
Par contre c'est un tableau qu'il veut :
Dim TaString As String = "HellototoWordtoto!!!totoCommenttotovatototutotojmftoto???"
Dim TableauDeDestination As String() = TaString.Split(New String() {"toto"}, System.StringSplitOptions.None),
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 déc. 2006 à 17:14
"Pour ta question 2b, en VB6 tu n'a pas le choix, donc partant de là ........"
Merci Casy, mais c'est là un constat, pas une explication du choix fait par VB.Net (ce qui m'intéresse, c'est pourquoi ne pas avoir fait directement, comme VB6. En d'autres termes : quelle pouvait donc être la gêne technique ?)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 15 déc. 2006 à 17:34
Ben outre le fait que en .NET tout est object et classe tu constatera que la methode .Net offre nettement plus de possibilités et d'horizons que la fonction VB6.
Partant de là il étais logique que cette fonction soit reorganisée.
Deplus étant une fonction de traitement de chaines, il été logique qu'elle soit intégrée dans la classe string.
Bref, personellement, l'évolution faite par M$ ne me choque pas sur ce point, au contraire.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 déc. 2006 à 17:43
Elle est loin de me choquer, Casy.
Là n'est pas le point...
Le point est celui de déterminer avec précision les "petits obstacles" susceptibles d'être rencontrés lors d'une migration et, si possible, de voir si une autre façon d'écrire d'emblée sous VB faciliterait cette migration (le moins possible à transformer).
La question finale est donc maintenant celle-ci :
Si, au lieu d'utiliser Split sous VB6, on écrivait en ne se servant que de Instr, Len et Mid :
Y aurait-il un iota à transposer pour migrer ?
lemoret
Messages postés37Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention11 mars 2007 15 déc. 2006 à 17:48
la question est simple. Pour écrire en pur framework hors espace de nom VB il faudrait aussi modifier le code. En utilisant l'espace de nom VisualBasic il n'y aurait rien à modifier ni avec split ni sans
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 déc. 2006 à 17:59
Merci à tous ceux qui ont bien voulu participer à cette conversation, dont je rappelle qu'elle n'a pas pour but de comparer des mérites entre VB et VB.net, mais tout autre chose.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 déc. 2006 à 18:11
C'est TON point de vue, Lemoret....
Su tu permets : J'AI posé MES questions et ai eu des réponses.
Je ne vois pas ou est ton problème et n'ai pas demandé de commentaires autres que des réponses à des questions (je l'ai même précisé d'emblée)
lemoret
Messages postés37Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention11 mars 2007 15 déc. 2006 à 18:15
Ce n'est pas mon point de vue, ni un commentaire.
En VB 2005 la notation
Dim toto()
As
Stringtoto = Split(
"mot1totomot2totomot3",
"toto")MsgBox(toto(0))
fonctionne parfaitement en ne nécessite aucune réécriture, sauf si on souhaite ne pas utiliser l'espace de nom VisualBasic. Et si on utilise pas cet espace de nom, alors il n'y a plus de Len, plus de Mid et plus de InStr non plus.
C'est bien la réponse à ta question ?
Non ce n'est pas la réponse à sa question.
Il veut en .net pas vb6. Le Microsoft.VisualBasic, je sais même pas pourquoi il existe il est à banir, vu que c'est du vb6. C'est d'ailleur pour ca que je préfére le C#, il n'existe pas.