Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110

    [VB.NET] Crypter Text

    Salve a tutti! Sono sempre io che rompo le scatole con un crypter di testo!!

    Allora ho un piccolo problemino non riesco a far si che quando cancello nella textbox1 nella textbox2 si cancelli in contemporanea:
    ad esempio c'è il testo "Ciao" e nella barra sotto il testo ciao cryptato che è "miao" come faccio a far si che quando nella texbox1 cancello una lettera quindi "Cia" lo faccia anche nella 2 quindi "mia" ? Per ora il codice da me usato è questo:

    codice:
        Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
            Dim originale As String
            Dim Cript As String
            If e.KeyChar = "A" Then
                TextBox1.AppendText("C")
            ElseIf e.KeyChar = "a" Then
                TextBox1.AppendText("c")
            ElseIf e.KeyChar = "C" Then
                TextBox1.AppendText("T")
            ElseIf e.KeyChar = "c" Then
                TextBox1.AppendText("t")
            Else
                TextBox1.AppendText(e.KeyChar)
            End If
        End Sub

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110
    Presento un altro problema in ciò....! Ovvero che se però incollo un testo.....
    (con tasto destro incolla oppure CTRL + V) il testo incollato non viene tradotto, come posso fare?
    (preciso che il codice soprastante è scritto al contrario nella textbox1 per far si di decriptare).

  3. #3
    Metti il codice nell'evento TextChanged
    Mi contraddico facilmente, ma lo faccio così spesso che questo fa di me una persona coerente [Caparezza]
    Se la conoscenza crea problemi, non è con l'ignoranza che li si risolve [Isaac Asimov]
    >>>Visita il mio blog<<<

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110
    Cepu non posso farlo, perchè e.Keychar non esiste nell'evento TextChanged....

  5. #5
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Ed invece devi usare textchange.
    da li hai l'intera stringa di textbox1 e assegni a textbox2 l'intera stringa cifrata.
    Ovvio che non devi fare un semplice replace come nell'altro post altrimenti sei di nuovo punto e a capo (e torneresti all'escamotage del keypress che però è orribile).

    nell'handler textchange l'unica cosa che devi scrivere è:

    TextBox2.Text = Cifra(TextBox1.Text);

    tutta la logica di cifratura la incapsuli in quella funzione.

    Da questo punto in poi se non ti riesce la cifratura (perche fai i replace in piu passaggi cosi come ho visto nl tuo precedente post) è un altro discorso.
    La stringa cifrata va ricostruita carattere per carattere in una seconda stringa è non su se stessa come facevi tu altrimenti non hai modo di sapere quali caratteri sono stati gia cifrati e quali da cifrare (le A diventavano M che successimaente diventavano R insieme a tutte le "vere" M).

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110
    rsdpzed sono "parzialmente" d'accordo con te ovvero si "l'escamotage" del KeyPress è stata diciamo una furbata.....
    Però anche se volessi mettere in pratica delle "Sub Private" (come mene scrissero un paio) mi trovo sempre dinanzi a problemi più grandi di me.... Malgrado la mia conoscenza (limitata ovviamente) del Visual Basic.

    Ora stavo provando a RI-RISCRIVERE il programma con un altro codice che mi fu dato.... Con anche una spiegazione "velata" che però ci sto provando da ieri sera e non riesco a capire come va inserita!

    [Giusto per farti capire di cosa sto parlando
    codice:
    'alfabeto normale    
    Dim alfa1 As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    
    'alfabeto ricodificato
    Dim alfa2 As String = "ZYXWVUTSRQPONMLKJIHGFEDCBA"
    
    Private Function CryptString(ByVal stringaDaCodificare As String) As String
        Dim retVal As String = ""
        Dim idxPos As Integer = -1
        For i As Int32 = 0 To stringaDaCodificare.Length - 1
            idxPos = alfa1.IndexOf(stringaDaCodificare(i))
            If idxPos >= 0 Then
                retVal &= alfa2(idxPos)
            Else
                retVal &= stringaDaCodificare(i)
            End If
        Next
        Return retVal
    End Function
    ]

    Con il quale mi fu detto:
    Il codice non vale neanche la pena commentarlo, in quanto, documentandoti, è di facile comprensione.
    Basta richiamare la funzione passandogli la stringa da codificare, e ti restituisce la stringa codificata.


    !!

  7. #7
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    Quel pezzo di codice lo metti sotto gli handler, all'interno della class.
    Nell'handler TextChange invece, scrvi la riga che ti ho scritto io solo che al posto di Cifra gli srivi CryptString.

    Per provare se funziona mi raccomando scrivi in maiuscolo e solo lettere.

    Però impara meglio VB.NET è un consiglio.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110
    Aspetta quel pezzo di codice non andrebbe tra cioè aspetta ti faccio vedere Dove l'ho inserito io:

    codice:
    Public Class Form1
        'alfabeto normale    
        Dim alfa1 As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    
        'alfabeto ricodificato
        Dim alfa2 As String = "ZYXWVUTSRQPONMLKJIHGFEDCBA"
    
        Private Function CryptString(ByVal stringaDaCodificare As String) As String
            Dim retVal As String = ""
            Dim idxPos As Integer = -1
            For i As Int32 = 0 To stringaDaCodificare.Length - 1
                idxPos = alfa1.IndexOf(stringaDaCodificare(i))
                If idxPos >= 0 Then
                    retVal &= alfa2(idxPos)
                Else
                    retVal &= stringaDaCodificare(i)
                End If
            Next
            Return retVal
        End Function
    Io l'ho inserito così e poi dovrei provare a scrivere ciò che tu mi hai consigliato e provare a scrivere? Ho capito bene?

  9. #9
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    si dentro l'handelr textchange piu o meno cosi subito dopo l'end function

    codice:
    Private Sub TextBox2_TextChanged(sender As Object, _ 
      e As EventArgs) Handles TextBox2.TextChanged
        TextBox1.Text = CryptString(TextBox2.Text);
    End Sub

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    110
    Ma così è perfettamente perfetto!!!!
    Adesso giusto per testare se ho capito basta creare altre2 variabili come Alfa1 e alfa2 con le lettere piccole e modificare il codice della Private sub dicendogli anche delle lettere piccole giusto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.