Inverser ordre des mots dans une phrase... c'est bien marrant :]

Soyez le premier à donner votre avis sur cette source.

Vue 3 577 fois - Téléchargée 166 fois

Description

Euuuuuuuuuuuuuuuuuuhhhhhhhhh..... je suis obligé de dire pourquoi j'ai fais ce code ???
Vu que je savais pas trop quoi faire de ma soirée, j'ai codé ce ptit prog pour m'amuser...
En tous cas ce truc me fait bien tripper ... Il se sort de ces phrase des fois lol

Allez amusez vous bien les ptits loups....
Bonne prog a tous :]
A++

DeAtH_-_CrAsH :]

Source / Exemple :


Private Sub Command1_Click()
DoEvents
Text1.Text = RTrim(Text1.Text)
Text1.Text = Text1.Text & " "
Dim MotRes As String
Dim txt As String
Dim MyTab1() As String
Dim MyTab() As String
MyTab() = Split(Text1.Text, " ")
j = UBound(MyTab)
txt = " "

Randomize

For a = 0 To Len(Text1.Text) + 200
MyTab1() = Split(txt, " ")

i = Int(Rnd * j)
If i <= UBound(MyTab) Then

For k = 0 To UBound(MyTab1)
 If MyTab1(k) = MyTab(i) Then
 MotRes = vbNullString
 GoTo er
 Else
 MotRes = MyTab(i)
 End If
Next k

er:
txt = txt & " " & MotRes
End If
Next a

For z = 0 To 5
txt = Replace(txt, "  ", " ")
Next z

txt = LTrim(txt)
txt = RTrim(txt)

Text2.Text = txt

Text1.Text = RTrim(Text1.Text)

End Sub

Conclusion :


J'aime bien remplir toutes les cases lol ...
Puis sinon laisser un commentaire au passage ca fait toujours plaisirs ;)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

DeAtHCrAsH
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
Pas encore de commentaire ??? Bizarre .... Doivent etre malade les rois de la critique :]
Almandric
Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
-
Et bien en voila des remarques :
* Le test 'If i <UBound(MyTab) Then' est inutile car i int(Rnd * j) et la fonction Rnd te renvoie un chiffre compris entre 0 et 1 donc Rnd * j tend vers j. Et ton j correspond au nombre de dimensions de ton tableau ('j = UBound(MyTab)') donc quoi qu'il arrive i sera toujours <= UBound(MyTab).
* Ensuite je me suis demandé pourquoi cette boucle : 'For a = 0 To Len(Text1.Text) + 200'. J'ai pas trouvé de bonne raison si ce n'est d'obtenir un nombre relativement important afin de faire assez de Rnd pour reprendre tous les mots. Le problème c'est que c'est carrément pas stable et t'es pas sur à 100% de retrouver tous tes mots à la fin. J'ai eu le problème. Je l'admets c'est pas de bol... Mais je pense que tu devrais stocker tous les randoms que tu fais dans un tableau et losque tu calcul un nouveau random fait une recherche pour savoir si tu l'as déjà tiré.

A+
cs_Willi
Messages postés
2377
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
16 -
Bien mais y a plus simple !

-------------------------------
http://www.perfectvb2k2.fr.st
DeAtHCrAsH
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
Tu as raison Almandirc...le test sur la valeur de i est inutile ... ce qu'il y a c'est que j'ai fait du copier coller d'un autre programme que j'ai fait et pour qui i = int(rnd*a) - 2 et que donc il fallait verifier la valeur de i ... puis j'ai pas vu cette erreur en collant le bout de code....

Pour ce qui est de la boucle For i = 0 to len(text1.text) + 200 c'est pour comme tu le dis pour retrouver tous les mots ... SI tu n'as pas retrouver tous les mots, c'est que les mot qui se sont "perdu" etaient en double dans ta phrase ....
Et le bug de ce code c'est que si il a deja vu un mot, il ne le reprend pas ....

Clair qu'il serait mieux de prendre les valeurs successifs de j et de les tester .. ca serais plus sure ...

Sinon a part ca merci pour tes remaques ....

A++
DeAtH_-_CrAsH
Almandric
Messages postés
31
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
12 août 2003
-
Eh Willi, facile de dire y'a plus simple mais je vois pas de code!!!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.