Mélange deux textbox non aléatoire

Signaler
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Salut tout le monde... hm voilà, toujours dans mon super projet de programme de cryptage, j'aimerais inclure ce type de mélange de caractères : si on a text1 = voiture, et text2 = 0123456, comment obtenir d'une part : v0o1i2t3u4r5e6, et d'autre part, "dé-mélanger" le tout, pour ré-tobtenir text1 et text2, sachant que l'ordre sera définitif, pas aléatoire. Les lettres garderont leur ordre... (ça sera plus simple pour les dissocier et les restituer je pense)... ça ne sera qu'une partie du traitement "cryptodélirant" de mon prog...

Merci d'avance...

14 réponses

Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
Salut,
Plutot que de t'ecrire ce code , je te propose un piste

Dim i as integer

for i=1 to len(Text1.text)
   msgbox mid(text1.text1,i,1)
next

voila à toi de joueur maintenant
@+
Megafan
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

ok merci, je vais zieuter ça !!!
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

Avec text1, text2, command1, et text3 pour le résultat...


Private Sub Command1_Click()
Dim i As Integer


    For i = 1 To Len(Text1.Text)
    Text1.Tag = Mid(Text1.Text, i, 1)
    Text2.Tag = Mid(Text2.Text, i, 1)
    Text3.Text = Text3.Text & Text1.Tag & Text2.Tag
    Next


End Sub

ca a l'air de bien fonctionner. Merci !!!
Euh, mais pour restituer, j'ai rajouter deux autres textbox... j'ai bienenvie de me servir de timers pour permuter d'une textbox à l'autre, j'ai fait un essai mais c pas ça...
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,

Pourquoi 2 textbox?
Text3 n'est pas suffisant?

 Pourapprendretoujoursplus!
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

c pour l'appli' brouillon, histoire d'y voir clair, première chaine dans text1, seconde chaine dans text2. on mix dans text3, jusque là o k.
J'ai préféré rajouter text4 pour restituer le contenu initial de Texte1, et text5 pour restituer text2, plutôt que d'effacer le contenu des deux premiers... juste comme ça !
...
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Ah ok.
Quel est ton problème dans ce cas là?
Copier text1 et text2 dans text4 et text5?

 Pourapprendretoujoursplus!
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

.... ? euh, nananananan relis bien ma "requête", trouver le contenu de text3 ça c bon, maintenant le but est de retrouver le contenu du text1 et text2 "uniquement" à partir du contenu du text3 (ça veut dire que le text1 et le text2 =  pouf, à 'pus), soit dissocier les lettres et les remettre une à une... dans deux champs vides et bien distinct !  en gros le truc inverse qui a "rempli" le champ text3 !
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Ah ok
ben dans ce cas là, fais:

dim i as integer
for i=1 to len(text3.text)
   if i mod 2=1 then
      text4.text=text4.text & mid$(text3.text,i,1)
   else
      text5.text=text5.text & mid$(text3.text,i,1)
   endif
next

 Pourapprendretoujoursplus!
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
ps: ça c'est valable si text1 et text2 ont à la base la même longueur, sinon, faut regarder soit le type de caractère qu'il y a à l'intérieur de ton text3 si jamais text1 et text2 ont des caractères de type différents, soit tu gardes en mémoire l'emplacement des données (genre une chaine "1,2,1,2,...")

 Pourapprendretoujoursplus!
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

Trop cool, ça fonctionne super bien ! Merci Megafan et mstarsup5 !!!!!
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

normalement c pour deux chaines de même longueur... pour le test j'ai mis deux trucs courts mais il devrait y avoir genre dans les 300 caractères dans les deux champs, soit quasiment 600 caractères dans ce qui fera office de "text3" !
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

hm... en fait, le principe de ce mélange ne changera pas, et il y aura le même nombre de caractères dans les deux champs de départ... sachant que le fait qu'il y ait par exemple 457 caractères dans text1, génèrera automatiquement 457 caractères dans text2. Soit un text3 de 914 caractères !!!... voili voilou... et il n'y aura pas d'espace ni ponctuation.

Je veux dire que text1 comportera genre :
"azea&értyui(op'qsdèf|e\tpças"
et pas
"Azer, er4t, meékrçjt ry m&làkqjf !!!... tgx."
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
En même temps, avec ce système, tu peux mettre n'importe quel caractère dans tes textes, ça marchera tout aussi bien vu les algos proposés.

 Pourapprendretoujoursplus!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

en instaurant un buffer çà sera beaucoup plus rapide

Private Sub Form_Load()
    Dim s1$, s2$, s3$
    
    MixUnmix "voiture", "0123456", s3, True
    
    MixUnmix s1, s2, "v0o1i2t3u4r5e6", False
    
    MsgBox "résultat :" & vbCrLf & s3
    MsgBox "recomposition :" & vbCrLf & s1 & vbCrLf & s2
End Sub

Sub MixUnmix(ByRef sVar1 As String, ByRef sVar2 As String, ByRef sResult As String, ByVal bMix
As Boolean)
'   à supposer les valeurs
correctes, à savoir
'   mix => taille svar1 =
taille svar2, pas nulle
'   unmix => taille
sresult pas nulle et paire

    Dim i%, j%
    j = 1
    If bMix Then
        sResult = Space(Len(sVar1) + Len(sVar2))
        For i = 1 To Len(sVar1)
            Mid$(sResult, j, 2) = Mid$(sVar1, i, 1) & Mid$(sVar2, i, 1)
            j = j + 2
        Next i
    Else
        sVar1 = Space(Len(sResult) / 2)
        sVar2 = Space(Len(sResult) / 2)
        For i = 1 To Len(sResult) Step 2
            Mid$(sVar1, j, 1) = Mid$(sResult, i, 1)
            Mid$(sVar2, j, 1) = Mid$(sResult, i + 1, 1)
            j = j + 1
        Next i
    End If
End Sub

++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp