Traiter une variable STRING

Résolu
meuh33 Messages postés 29 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 6 mai 2006 - 21 avril 2006 à 16:32
meuh33 Messages postés 29 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 6 mai 2006 - 21 avril 2006 à 17:20
Bonjour,

Je suis sous visual basic 6.0.

J'ai besoin d'enlever les premiers caracteres contenus dans une variable de type string.
J'ai cherché sur google, dans MSDN, mais les "solutions" trouvées ne marchaient pas (érreurs, comme si la comande n'existait pas !!)

J'ai trouvé la methode Remove : http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vblr7/html/vamthremove.asp

Mais sa ne marche pas, visual basic ne reconait pas " Public Overloads Sub Remove(ByVal { Key As String | Index As Integer }) "

J'ai aussi trouvé d'autres moyens, mais qui ne marchent que avec VB.NET...

Je m'en remet à vous...
J'espere que vous trouverez une solution!!
Merci

8 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2006 à 17:12
Salut,

Tu as deux possibilites:

Dim Reception As String
Dim TypeMessage As String
Dim Donnee As String
Dim Param() As String
Param = Split(Reception, " ", 1)
TypeMessage = Param(0)
Donnee = Param(1)

Ca c est dans le cas ou tu puisse avoir des type de message du style %MMMM

Sinon si il y a toujours %+1Lettre alors Tu peux utiliser la Fonction Mid

MSDN Dit:

Renvoie une valeur de type Variant (String) contenant un nombre indiqué de caractères extraits d'une chaîne de caractères.


Syntaxe


Mid( string , start[, length])

MyString = "AbCdEfG"
MyNewString = Mid(MyString, 3, 4)
' Renvoie ""CdEf"

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
21 avril 2006 à 16:36
Et as-tu simplement regarder la fonction Right ?

0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2006 à 16:42
Salut,

- En complément j'ajouterai simplement (enfin La MSDN ajouterait)
Right Renvoie une valeur de type Variant (String) contenant le nombre indiqué de caractères d'une chaîne en partant de la droite

Exemple:
Dim AnyString, MyStr
AnyString =  "Bonjour à tous"   ' Définit la chaîne.
MyStr =  Right( AnyString, 1)   ' Renvoie "s".
MyStr  = Right(AnyString, 6)   ' Renvoie "à tous".
MyStr = Right(AnyString, 20)   ' Renvoie "Bonjour à tous".


@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
meuh33 Messages postés 29 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 6 mai 2006
21 avril 2006 à 16:54
Merci pour ces réponses rapides, et pour tes exemples précis Jriver :)
Je vais essayer tout de suite, je revien pour valider la réponse si ca marche (enfin si j'arrive à le faire marcher ^^) !
0

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

Posez votre question
meuh33 Messages postés 29 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 6 mai 2006
21 avril 2006 à 17:05
Cette fonction marche, mais elle ne répond malheureusement pas à mes besoins, je m'explique:

J'ai fait un serveur et un client avec Winsock.
Pour que le serveur et le client sachent a quoi correspondent les messages qu'ils recoivent, j'ai décidé de metre en place un systeme de commandes:

Exemple: Serveur envoi "%M Salut ca va?" au Client.
Le Client sait que c'est un message texte car il a reconu la "commande" %M en début de message.
Le Client va donc retirer %M de la variable, puis l'afficher sous forme de texte.

Le probleme c'est que l'on ne peut pas prévoir la longueur du message, donc la fonction Right ne convient pas dans ce cas la :(

Merci d'avance !
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
21 avril 2006 à 17:13
La fonction Right convient tout à fait à ton besoin :

message = Right$(commande, len(commande)-3)

0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
21 avril 2006 à 17:20
tout comme la fonction Mid$ :



message = Mid$(commande, 3)

Daniel
0
meuh33 Messages postés 29 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 6 mai 2006
21 avril 2006 à 17:20
Merci Jrivet pour ta rapidité et ton efficacité !

J'ai trouvé une autre solution en meme temps que toi:

1. Je reconnais quelle "commande" est utilisée:

If message_recu_s Like "%M*" Then
Dim vrai_long_ As String
Dim long_ As String
Dim long_ As String

long_ = Len(message_recu_s)
vrai_long_ = long_ - 2 'Je connais le nombre de caracteres de la "comande" donc je fais une soustraction!
Text_1 = Right(Text_1, vrai_long_)
Text1.Text = Text_1
End if

See u
0
Rejoignez-nous