Traiter une variable STRING

[Résolu]
Signaler
Messages postés
29
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
6 mai 2006
-
Messages postés
29
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
6 mai 2006
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Et as-tu simplement regarder la fonction Right ?

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
29
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
6 mai 2006

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 ^^) !
Messages postés
29
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
6 mai 2006

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 !
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
La fonction Right convient tout à fait à ton besoin :

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

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
30
tout comme la fonction Mid$ :



message = Mid$(commande, 3)

Daniel
Messages postés
29
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
6 mai 2006

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