e dove sta il problema degli spazi ?
Pocciox vengo li e ti pesto
Per Sky, ho fatto un po' diverso da come dici tu.
Comunque ecco qui il source:
VBNET Programming
Public Class frm_main
Dim associazione As New ArrayList
Dim aList As New ArrayList
Dim myRnd As New Random
Private Sub CreaAssociazione()
Dim i As Integer
For i = 0 To 127
aList.Add(i)
Next
For i = 0 To 127
Dim rnd As Integer = myRnd.Next(aList.Count)
associazione.Add(aList(rnd))
aList.RemoveAt(rnd)
Next
End Sub
Private Sub btn_codifica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_codifica.Click
txt_codificato.Clear()
For Each carattere As Char In txt_originale.Text
'txt_codificato.Text &= Strings.Right("00" & Asc(carattere) - 32, 3) '<- versione ASCII
txt_codificato.Text &= Strings.Right("00" & associazione(Asc(carattere)), 3)
txt_codificato.Text &= " "
Next
End Sub
Private Sub btn_decodifica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_decodifica.Click
Dim i As Integer
Dim quad As Integer = txt_codificato.Text.Count / 4
Dim terna As String
txt_decodificato.Clear()
For i = 0 To quad - 1
terna = txt_codificato.Text.Substring(i * 4, 3)
'txt_decodificato.Text &= Chr(Integer.Parse(terna) + 32) '<- versione ascii
txt_decodificato.Text &= Chr(associazione.IndexOf(Integer.Parse(terna)))
Next
End Sub
Private Sub frm_main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreaAssociazione()
End Sub
End Class
Il codice contiene 2 versioni, quella fatta con la tabella ASCII un po' come dice SKY, che però non mi piace perchè ti limita ad una codifica prestabilita e se il tuo scopo è nascondere il testo rischi che qualcuno te lo scopra se immagina quello che hai fatto.
La seconda versione, la mia preferita, non usa la tabella ascii ma crea una associazione tra lettere e numeri casuale e quindi usa 3 cifre per ogni lettera (al fine di potersi sbizzarrire con piu codifiche senza il limite delle 2 cifre)
Il programma ha sicuramente dei difetti e uno è che rimane uno spazio in fondo ai gruppi di 3 cifre, anche se non causa problemi, ma sono troppo pigro per correggerli, però sono sicuro che quel professionista coder di Pocciox li metterà a posto lui
Per Dany,
visto che dici che vuoi dare tu l'associazione, se vuoi puoi farlo, certo è una rottura di palle,
puoi usare un codice come quello che ho scritto io, solo che la funziona creaassociazione dovresti scriverla tu in modo che ad ogni "cella" dell'array "associazione" dai tu un valore che vuoi.
Ti spiego meglio.
Il concetto con cui ho fatto l'array "associazione" è che è la mia versione personale della tabella ascii, ovvero sono 128 celle dove ad esempio la cella 97 contiene il numero associato alla "a" mentre la cella 65 il numero associato alla lettera "A", se guardi la tabella ASCII standard capirai.
Nel tuo caso dovrai tu a manina compilare l'array, ad esempio scrivendo
associazione(65)="011" per dire che la A la rappresenti con la stringa "011"
Volendo aggiungere qualcosa, se vuoi davvero creare tu l'associazione tra lettere e cifre potresti pensare di creare un file di configurazione esterno che il programma carica, sarebbe ancora piu carino invece di scrivere a mano nel programma.
Un file tipo
a=011
b=012
c=013
etc