[Compliqué :/]Split une chaine de mots dans une chaine de mots [Résolu]

Signaler
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
-
 Zermelo -
Bonjour a tous, j'ai dans un projet une textbox avec laquelle l'utilisateur peut entrer une variable "personnalisée", c'est à dire, une variable comme:

' %ran_int;0,100% '

cette variable retournera un chiffre aléatoire entre 0 & 100
Exemple:

textbox: (Entré par l'utilisateur): "Chiffre %ran_int;50,100% généré"
Button "Accepter" => msgbox => "Chiffre 82 généré"

je sais pas si l'idée est comprise, mais c'est difficile à expliquer...

J'ai cherché, avec les split, mais comment faut-il "séléctionner" un texte entre 2 caractères "%" ici en l'occurence.

Et, séléctionner, admettons, la deuxieme partie du texte séparé par le point virgule (donc "50,100") et reséléctionner la 1ere partie "50" et la deuxieme "100" séparés par une virgule, et stockés dans des variables pour faire un truc final du genre:

"
Séléctionner texte entre "%" => si le texte commence par ran_int
Fonction => RandomInt(50 ,100) 'Qui sont les "50" et "100" définis par l'utilisateur plus haut...

pourquoi comparer si la 1ere partie est "ran_int" ? car j'ai l’intention de faire plusieues variables (ex: %ran_str;x% 'ou x est le nombre de caractères a générer.)

J'y ai réfléchi longtemps, et me suis dit que ca prendrait beaucoup de for each, split, etc.. Je viens ici pour voir si vous avez des idées a partager avec moi.

Merci d'avance d'avoir pris le temps d'avoir lu mon post et, me venir en aide si vous avez des solutions.

Cordialement,
Secondary

23 réponses

Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
1
Bizarre.

Que dire alors du ran_str dont vous parlez comme d'une intention dans votre post de début ?

J'avais enfait plusieures variables en tete, comme celle-ci (ran_str;x) x=longeur du texte.


Mais je me suis aperçu que avez tous raison :/
=> Ce que je veux dire par là, c'est que faire entrer cette commande par l'utilisateur fait un peu compliqué, je vais trouver une autre solution (plus simple) car c'est vrai que cette idée de variables un peu farfelue est un peu ...

Merci quand même d'avoir répondu a mon post et de votre soutien,

Cordialement,
Secondary
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
1
Désolé du double post, mais, dans cette variable, elle sera (évidemment)
remplacée par le contenu généré (chiffre entre 50 & 100 = 82 par ex)

ex: msgbox(textbox.text.replace(mavariablepersonnalisee, contenufinal))

Mais la question plus haut est (si ce n'est pas tres clair) c'est de localiser mavariablepersonnalisee (donc %<variableperso>%)

Merci beaucoup de votre aide, je vous en serai reconnaissant :)

Cordialement,
Secondary
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
je me suis personnellement arrêté à cette phrase :
je sais pas si l'idée est comprise, mais c'est difficile à expliquer...

Quand je lis une telle phrase, en effet :
- ma réponse est immédiate : "clarifie donc tes idées" et reviens les exposer. SQi "c'est difficile à expliquer", c'est que tes idées ne sont pas suffisamment claires. Point barre.
- je quitte aussitôt la discussion.
A toi de voir, maintenant ... hein ...
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
1
Re,
Le problème c'est que j'ai compris l'idée, très bien même, mais c'est apres de l'exposer aux autres, ce n'est pas toujours évident, car couper un texte en plusieures sous parties, cela fait beacoup de taches répétitives donc je ne sais pas si la personne qui lit le message va comprendre

Cordialement,
Secondary
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Le problème c'est que j'ai compris l'idée

Encore heureux, si c'est la tienne !
Débrouille-toi pour l'exposer (techniquement, concisément et précisément).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Bonjour,

Si j'ai bien décodé, tu veux utiliser un TextBox pour commander un nombre aléatoire en deux bornes indiquées dans le même TextBox. Donc, tu veux faire le trajet de Fécamp à Paris en faisant un détour par Moscou.

Pourtant, tout ce que cela prend c'est juste deux Textboxes, (ou deux NumericUpDown), pour désigner les bornes et un petit bouton de rien pour lancer le calcul; au lieu d'un TextBox bouche-trous désigné pour 3 ou 4 usages. C'est bien beau de faire de la "programmation artistique", mais rien ne remplace la programmation efficace qui n'oblige pas l'utilisateur à prendre 3 éternités pour savoir comment entrer les données.

Bonjour,

P.S. Pour ceux qui se demanderaient pourquoi Fécamp (en Normandie) au lieu de Lyon ou de Marseille; c'est juste pour une énorme considération historique. C'est là qu'habitaient mes ancêtres français et que de sont partis Nicholas et Jacques Marcotte pour aller s'établir en Nouvelle-France
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut
rien compris
le but est faire le parsing de ta variable personnalisé qui en fait est un string
pour obtenir deux nombres représentants les limites pour la fonction random
pourquoi ne pas afficher deux textbox
une pour chaque limit

textbox: (Entré par l'utilisateur): "Chiffre %ran_int;50,100% généré"


l'utilusateur doit frapper tout
ce charabia "Chiffre %ran_int;50,100% généré"

Bonjour ShayW,

SI, et avec un vrai gros si, j'ai bien compris; il veut utiliser un seul textbox pour faire calculer plusieurs nombres aléatoires avec des bornes variables à chaque fois. Et son Textbox contient un nom de variable qui va servir à désigner le nombre aléatoire calculé entre les deux bornes indiquées également dans le même textbox. Donc il aurait une sorte de "triplet" : nom de variable, plus bas, plus haut.

Et il a peur de devoir faire trop de boucles...
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
1
Bonsoir, vous avez compris, c'est enfait une configuration d'un message automatique, assez complexe, je l'avoue, mais le but c'est que j'ai une listbox, un bouton ajouter item, et une form ajoutée s'affiche et demande d'entrer le message automatique, avec une aide listant les variables disponibles (celle-ci en l'occurence).

Donc si l'utilisateur écrit ceci dans la textbox permettant d'ajouter un item dans la liste: "[%ran_int;0,50%] Test" et bien le logiciel l’interprétera comme:
" Texte entre '%' => Lire le contenu => ran_int => valeur aléatoire => comprise entre (0 et 50) "
La fonction permettant de lire la variable retournera "[73] Test"


Cordialement,
Secondary

Bonjour,
Moi non plus... j'ai juste compris qu'il faut faire un split, rien de plus simple c'est très bien expliqué
dans cette page


Après je n'ai pas lu ta question jusqu'à la fin car je veux garder ma tête opérationnelle...

Tu veux faire un split sur "Chiffre %ran_int;50,100% généré" c'est ça?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Pardon,
voici le lien que je voulais t'envoyer:
LIEN

Tu vois? en plus j'ai lu ta question qu'à moitié, et ça y est je fais des fautes...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
1
Après je n'ai pas lu ta question jusqu'à la fin car je veux garder ma tête opérationnelle...

^^

Merci pour le lien, je vais tout de meme essayer avec ma maniere, si je poste mon code, quelqu'un pourrait m'aider à l'optimiser ? merci

Cordialement,
Secondary

Bien sur on est la pour ça...
Mais dans ton titre :
"[Compliqué :/]Split une chaine de mots dans une chaine de mots"

Arrête de l'appeler compliqué le Split...

Quand tu sauras comment il fonctionne tu ne diras pas ça...

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
meme chez Microsoft on se casse la tete
j'ai l'impression qu'on va atteindre les 6 pages

Mais non prends leur exemple le plus simple et teste:
        'L'exemple suivant montre comment fractionner une chaîne à ses espaces.
        'syntaxe: Split(Texte,  Delimiter) si le Delimiter est omis il considère que ce sont les espaces
        Dim TestString As String = "Look at these!"
        ' Returns an array containing "Look", "at", and "these!".
        Dim TestArray() As String = Split(TestString)
        MsgBox(TestArray(0))
        MsgBox(TestArray(1))
        MsgBox(TestArray(2))




Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

On commence par le plus simple
        'ça:
        Dim TestArray() As String = Split(TestString)
        'et ça:
        Dim TestArray() As String = Split(TestString, " ")
        'c'est la même chose donc



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut acive

garde ta tete opérationelle

Salut Shay,
Tu parles... ça va être l'heure de l'apéro chez moi
Et je suis encore choqué avec le random dans je ne sais quel langage ' %ran_int;0,100% '
C'est du quoi? java? j'ai déjà vu ça mais je m'en rappelle plus...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Bonjour Secondary117.

Indépendamment du texte contenu dans votre TextBox, pouvez-vous nous donner la liste exhaustive des paramètres dont doit dépendre le nombre aléatoire à produire.

Cordialement.



Étant illettré, je signe d'une croix : ×