Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MELANGOR


Information sur la source

Catégorie :Divers Source .NET ( DotNet ) Niveau : Débutant Date de création : 01/05/2004 Vu / téléchargé: 6 433 / 253

Note :
8 / 10 - par 3 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Cttee suroce a  été  téire de  clele de  Richard Clark  (http://www.c2i.fr/code.aspx?IDCode=546),  mias comme elle étais en  C#  et  que  moi  je  prreéfe le  VB.Net  aolrs j'ai  dcédié de  la  cniterovr. Ce  prmgromae cmmoe vuos aevz semreunt du  le  vior preemt de  mnéleagr les ltertes cormpesis dnas un mot (d'au mnois 4  leretst) . Volià !  
 

Source

  • Private Function ChangeLesMots(ByVal Texte As String) As String
  • ' Declare un nombre aléatoire :
  • Dim nbAlea As Random = New Random
  • ' Contient les caractères de séparations de deux mots :
  • ' le "c" après chaques separateur permet la conversion en Char !
  • Dim Separateurs() As Char = New Char() {" "c, ","c, ";"c, "."c, ":"c, ControlChars.Quote, "'".ToCharArray()(0), "-"c}
  • ' On crée un tableau qui contiendra les mots :
  • Dim Tableau() As String = Texte.Split(Separateurs)
  • ' Texte que l'on renverra :
  • Dim TexteModifie As sb = New sb(Texte.Length)
  • ' Permet de controler mot à mot :
  • Dim Mot As String
  • For Each Mot In Tableau
  • ' On choisie l'operation à faire selon la taille du mot :
  • Select Case (Mot.Length)
  • Case 0
  • Exit Select
  • Case 1
  • TexteModifie.Append(Mot + " ")
  • Exit Select
  • Case 2
  • TexteModifie.Append(Mot + " ")
  • Exit Select
  • Case 3
  • TexteModifie.Append(Mot + " ")
  • Exit Select
  • Case 4
  • ' C'est le seul changement possible :
  • TexteModifie.Append(Mot.Substring(0, 1))
  • TexteModifie.Append(Mot.Substring(2, 1))
  • TexteModifie.Append(Mot.Substring(1, 1))
  • TexteModifie.Append(Mot.Substring(3, 1))
  • Exit Select
  • Case Else
  • ' Contiendra le mot melange (de taille -2 puisqu'on ne change pas les
  • ' premieres et dernieres lettres ...)
  • Dim NouveauMot() As Char = New Char(Mot.Length - 2) {}
  • ' Permet de savoir quelles lettres il nous reste...
  • Dim Liste As ArrayList = New ArrayList
  • ' On ajoute les lettres à la liste :
  • Liste.AddRange(Mot.ToCharArray(1, Mot.Length - 2))
  • ' Pour chaques positions :
  • Dim position As Integer
  • For position = 0 To (Mot.Length - 2) - 1
  • ' Retire aléatoirement une lettre :
  • Dim Enleve As Integer = nbAlea.Next(Liste.Count)
  • NouveauMot(position) = CChar(Liste(Enleve))
  • Liste.RemoveAt(Enleve)
  • Next
  • ' 1ere lettre :
  • TexteModifie.Append(Mot.Substring(0, 1))
  • ' Mot modifie :
  • For position = 0 To NouveauMot.Length - 2
  • TexteModifie.Append(NouveauMot(position), 1)
  • Next
  • ' derniere lettre :
  • TexteModifie.Append(Mot.Substring(Mot.Length - 1, 1))
  • ' Plus rapide :
  • Exit Select
  • End Select
  • TexteModifie.Append(" ")
  • Next
  • ' On retourne le texte modifie :
  • Return TexteModifie.ToString
  • End Function
Private Function ChangeLesMots(ByVal Texte As String) As String
        ' Declare un nombre aléatoire :
        Dim nbAlea As Random = New Random
        ' Contient les caractères de séparations de deux mots :
        ' le "c" après chaques separateur permet la conversion en Char !
        Dim Separateurs() As Char = New Char() {" "c, ","c, ";"c, "."c, ":"c, ControlChars.Quote, "'".ToCharArray()(0), "-"c}
        ' On crée un tableau qui contiendra les mots :
        Dim Tableau() As String = Texte.Split(Separateurs)
        ' Texte que l'on renverra :
        Dim TexteModifie As sb = New sb(Texte.Length)
        ' Permet de controler mot à mot :
        Dim Mot As String
        For Each Mot In Tableau
            ' On choisie l'operation à faire selon la taille du mot :
            Select Case (Mot.Length)
                Case 0
                    Exit Select
                Case 1
                    TexteModifie.Append(Mot + " ")
                    Exit Select
                Case 2
                    TexteModifie.Append(Mot + " ")
                    Exit Select
                Case 3
                    TexteModifie.Append(Mot + " ")
                    Exit Select
                Case 4
                    ' C'est le seul changement possible :
                    TexteModifie.Append(Mot.Substring(0, 1))
                    TexteModifie.Append(Mot.Substring(2, 1))
                    TexteModifie.Append(Mot.Substring(1, 1))
                    TexteModifie.Append(Mot.Substring(3, 1))
                    Exit Select
                Case Else
                    ' Contiendra le mot melange (de taille -2 puisqu'on ne change pas les 
                    ' premieres et dernieres lettres ...)
                    Dim NouveauMot() As Char = New Char(Mot.Length - 2) {}
                    ' Permet de savoir quelles lettres il nous reste...
                    Dim Liste As ArrayList = New ArrayList
                    ' On ajoute les lettres à la liste :
                    Liste.AddRange(Mot.ToCharArray(1, Mot.Length - 2))
                    ' Pour chaques positions :
                    Dim position As Integer
                    For position = 0 To (Mot.Length - 2) - 1
                        ' Retire aléatoirement une lettre :
                        Dim Enleve As Integer = nbAlea.Next(Liste.Count)
                        NouveauMot(position) = CChar(Liste(Enleve))
                        Liste.RemoveAt(Enleve)
                    Next
                    ' 1ere lettre :
                    TexteModifie.Append(Mot.Substring(0, 1))
                    ' Mot modifie :
                    For position = 0 To NouveauMot.Length - 2
                        TexteModifie.Append(NouveauMot(position), 1)
                    Next
                    ' derniere lettre :
                    TexteModifie.Append(Mot.Substring(Mot.Length - 1, 1))
                    ' Plus rapide :
                    Exit Select
            End Select
            TexteModifie.Append(" ")
        Next
        ' On retourne le texte modifie :
        Return TexteModifie.ToString
    End Function

Conclusion

Je voudrais savoir si il est possible de savoir quel séparateur à permis de couper le mot courant pour ensuite pouvoir mettre : TexteModifie.Append(Separateur) au lieu de TexteModifie.Append(" ")...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Pingouin le 01/05/2004 14:16:35

cool mais ca sert a quoi ? Si je peux me permettre cette question betement utilitariste et materialiste .

Pingouin

signaler à un administrateur
Commentaire de ZogStriP le 01/05/2004 14:22:23 administrateur CS

Tout simplement à rien !
C'est là l'intêret !

MDR

signaler à un administrateur
Commentaire de EBArtSoft le 01/05/2004 21:30:17 administrateur CS

http://www.vbfrance.com/code.aspx?ID=8550

No comment...

signaler à un administrateur
Commentaire de ZogStriP le 01/05/2004 21:37:02 administrateur CS

dsl EBArtSoft

signaler à un administrateur
Commentaire de EBArtSoft le 01/05/2004 21:40:03 administrateur CS

Y'a pas de mal, moi je l'aime bien cette source ! lol

@+

signaler à un administrateur
Commentaire de jesusonline le 01/05/2004 21:58:59 administrateur CS

Effectivement ca sert à rien mais c'est marrant, et puis ca peut permettre d'apprendre certains trucs aux debutants.

Par contre tu as une erreur dans le code (on dirait les traducteur automatique :p)

donc à la place de
' Texte que l'on renverra :
Dim TexteModifie As sb = New sb(Texte.Length)
il faut mettre
' Texte que l'on renverra :
Dim TexteModifie As System.Text.StringBuilder = New System.Text.StringBuilder(Texte.Length)


sinon pour les signes de ponctuation, je ne vois pas de methode simple :( j'ai deux solutions soit on gere pour chaque separateur (vive les perf ...) soit sinon tu enregistres la position de ces caractères et tu le replace ensuite, contact moi si tu comprend pas :p

signaler à un administrateur
Commentaire de ZogStriP le 01/05/2004 22:42:29 administrateur CS

pour le sb j'ai fait un : imports sb = System.Text.StringBuilder...
Sinon merci pour le conseil, je verrais ce que je peux faire !

signaler à un administrateur
Commentaire de clementpat le 02/05/2004 11:19:15

pas mal .

signaler à un administrateur
Commentaire de azerty25 le 04/05/2004 13:10:00

Pour l'utilité, c'est un peu pour montrer que le cerveau peut lire les mots tant que la premiere et derniere lettre son à leur place et les lettres restantes mélangées, en gros.
Sinon, sur le screen, je vois qu'il ya un pb, l'apostrophe vers la fin n'a pas été pris

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.