Nombre de lettres dans deux variables égaux

Résolu
Jeromedu79 Messages postés 119 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 23 décembre 2012 - 1 mars 2011 à 12:13
Jeromedu79 Messages postés 119 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 23 décembre 2012 - 1 mars 2011 à 21:02
Bonjour,

Voila je possède un mot qui est enregistré dans une variable dite Key
Et un texte qui est enregistré dans une variable dite Clair.

Je les déclare ainsi :

Dim Key as string = "toto"
Dim Clair as string = "Il fait un beau temps"


Ensuite, J'enlève tous les espaces du texte

Je les enlève ainsi :

Clair = replace(clair, " " , "")



Voila mon problème :

Je cherche à ce que qu'en je clique sur un bouton, le nombre de lettre dans la variable key et texte soit égaux toute en gardant les mêmes caractère de la variable key:

Exemple :

Key : toto
Texte (après enlèvement des espace) : Totovaàlaplage

Résultat voulu :

Key : tototototototo
Texte (après enlèvement des espace) : Totovaàlaplage



Autre exemple :

Key : Chiffre
Texte (après enlèvement des espace) : Jevaisàlacaserne

Résultat voulu :

Key : ChiffreChiffreCh
Texte (après enlèvement des espace) : Jevaisàlacaserne


Merci.

48 réponses

Jeromedu79 Messages postés 119 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 23 décembre 2012 1
1 mars 2011 à 18:37
Re,

Le code marche très bien.
Je les un peux modifier pour l'adapter à mon form.

Merci à vous deux
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
1 mars 2011 à 18:44
trop tard désolé
0
Sehnsucht Messages postés 107 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 4 mai 2013
1 mars 2011 à 19:37
@ShayW juste pour te tarabuster un peu

mieux vaut initialiser rs à "" (ou String.Empty qui fait pareil, même si je dois être le seul à m'en servir ^^) que Nothing dans un cas comme celui là (bon là encore c'est pas très grave, c'est pas faux) parce que lorsque tu concatènes au départ si on remplace les variables par leurs valeurs ça donne
rs = Nothing & "Chiffre" qui pourrait/devrait(?) planter en tout cas ça "fait bizarre" (peut-être que pour moi ^^) d'ajouter du texte non pas à rien ("") mais à quel que chose d'indéfini (Nothing)

String.Concat(key) fera la même chose que key (en moins performant) on utilise String.Concat avec plusieurs paramètres pour les concaténer entre eux, là tu concatènes key avec rien et ce résultat tu le concatènes (à l'aide de l'opérateur &) à rs.
Sinon pour raccourcir un peu plus l'écriture tu peux écrire
rs &key ' equivalent à rs rs & key


Et finalement la grande touche de gros chipotage ^^ tu utilises deux fois key.Length et texte.Length, si jamais cette fonction était utilisée souvent et faisait partie d'un "code critique" (= qui nécessite une grande performance/rapidité encore que .Net soit pas nécessairement le framework le mieux adapté dans ce cas) il vaudrait mieux stocker ces valeurs une fois avant dans des variables.

En fait cette dernière remarque me vient surtout d'une version quasi-similaire:
Dim result As New Text.StringBuilder
Dim length As Integer = key.Length

For i As Integer = 0 To value.Length - 1
    result.Append(key(i Mod length))
Next

Return result.ToString()

En fait je boucle sur chaque caractère de la chaîne donnée, et je recopie le caractère de la clef à la même position (modulo sa longueur) l'appel à la longueur étant nécessaire à chaque itération, j'ai préféré l'avoir dans une variable (je fais aussi appel à un StringBuilder, qui est plus performant en ce qui concerne les (re)copies de chaines, dans l'optique d'un très long texte mis en paramètre)

Si on voulait on pouvait aussi le faire en une ligne (assez lourdingue) grâce aux méthodes d'extension et LINQ mais ça présente pas vraiment d'intérêt en terme de lisibilité/performance, à la limite c'est surtout pour le "défi"...

Voilà, désolé si vous trouvez que je chipote beaucoup parfois, c'est mon style, et puis on est aussi là pour partager (même des trucs pas forcément indispensable) ... ça c'est ma minute "je me jette des fleurs"

Cordialement !
0
Jeromedu79 Messages postés 119 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 23 décembre 2012 1
1 mars 2011 à 20:04
Merci également pour ton Shayw
0

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

Posez votre question
Jeromedu79 Messages postés 119 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 23 décembre 2012 1
1 mars 2011 à 20:22
Désolé j'ai fais une faute de frappe :

> Merci également pour toi Shayw
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
1 mars 2011 à 20:31
Non c'est bon
il faut bien apprendre
Comme je viens de l'époque pascal c c++
l'époque débrouille toi il fallait écrire toute
les méthode string tu seul aujourd'hui avec le vb.net on cherche plutot la méthode qui convient
le mieux mais des fois on veut faire trop net
par ex
rs = rs & String.Concat(key)
je sais que c'est mieux
rs&= key
mais comme je me suis dit ce n'est pas assez net
alors string.concat

Bonne soirée
0
Sehnsucht Messages postés 107 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 4 mai 2013
1 mars 2011 à 21:01
Le String.Concat est possible, mais pour qu'il ait une réelle utilité il faudrait l'écrire comme ceci

rs = String.Concat(rs, key)
0
Jeromedu79 Messages postés 119 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 23 décembre 2012 1
1 mars 2011 à 21:02
Merci, bonne soirée à toi aussi
0
Rejoignez-nous