Oppure

Loading
26/03/13 22:15
lukegh
Ciao, vorrei realizzare un software che mi codifica il testo tramite l'utilizzo di una mia tabella..
Cioè vorrei che il software vada a sostituire le lettere con delle lettere da me assegnate..
ad esempio creo una tabella che dice:
a = s
b = x
c = e
d = r

insomma cosi a seguire vorrei creare un programma che mi converta il testo da "a" a "s" e viceversa.... Cosa mi consigliate di fare?
aaa
26/03/13 23:41
LittleHacker
Postato originariamente da lukegh:

Ciao, vorrei realizzare un software che mi codifica il testo tramite l'utilizzo di una mia tabella..
Cioè vorrei che il software vada a sostituire le lettere con delle lettere da me assegnate..
ad esempio creo una tabella che dice:
a = s
b = x
c = e
d = r

insomma cosi a seguire vorrei creare un programma che mi converta il testo da "a" a "s" e viceversa.... Cosa mi consigliate di fare?


Potresti usare gli array di stringhe, cioè:


Public Function Codifica(ByVal stringa As String) As String
Dim cod As String
cod &= stringa.Replace("a", "s");
cod &= stringa.Replace("b", "x");
cod &= stringa.Replace("c", "e");
cod &= stringa.Replace("d", "r");
...
Return cod
End Function


Però non ti consiglio di usare le lettere, usa dei caratteri speciali, tipo "~", "`", "¬", etc.
:k:
aaa
27/03/13 19:41
GN
Scusa LittleHacker secondo me è più elegante usare un dictionary:
Dim d As New Dictionary(Of String, String)
d("a")="s"
d("b")="x"
d("c")="e"
d("d")="r"
For Each i As String In d.Keys
 cod=cod.replace(i, d(i))
Next
aaa
27/03/13 20:22
LittleHacker
Postato originariamente da GN:

Scusa LittleHacker secondo me è più elegante usare un dictionary:
Dim d As New Dictionary(Of String, String)
d("a")="s"
d("b")="x"
d("c")="e"
d("d")="r"
For Each i As String In d.Keys
 cod=cod.replace(i, d(i))
Next


Ok, perfetto! Ho fatto così perché non lavoro più da un po' sul vb.net! E l'unica volta che ho provato a fare un criptatore/decriptatore, ho usato il metodo postato!
aaa
28/03/13 1:34
lukegh
Appena possibile faccio delle prove e vi dico...


...non ti consiglio di usare le lettere, usa dei caratteri speciali...

In realtà ho creato una mia "Tabella Caratteri" cosi da utilizzare sempre lo stesso sistema e riuscir a codificare/decodificare piccole frasi anche a mano...

NB: Non devo nascondere segreti della Nasa e i miei "AMICI" per quanto si possa dire che sanno usare il PC, non avranno la minima idea di come raggiungere il testo decodificato :D
aaa
28/03/13 16:26
lukegh
Ho appena provato ed alcuni caratteri me li sballa...

Ora do qualche info...
"Cia" codificato è: "151E018".
Quando vado a decodificare "151E018" il programma si ritrova a fare:
15 = C
1E = i
01 = 7
8 = ?? <-- Da dove esce??


La mia tabella è:
15 = C
1E = i
01 = 7
0E = a


Cosa devo controllare?? Come posso risolvere??



PS: Provando a codificare "a" mi ritrovo con "018"... ma il codice che uso è questo:
d("a") = "0E"

quindi dovrei ricevere come risultato "0E" e non questo strano "018".... Qualcuno sa delucidarmi??
aaa
28/03/13 16:36
LittleHacker
Postato originariamente da lukegh:

Ho appena provato ed alcuni caratteri me li sballa...

Ora do qualche info...
"Cia" codificato è: "151E018".
Quando vado a decodificare "151E018" il programma si ritrova a fare:
15 = C
1E = i
01 = 7
8 = ?? <-- Da dove esce??


La mia tabella è:
15 = C
1E = i
01 = 7
0E = a


Cosa devo controllare?? Come posso risolvere??



PS: Provando a codificare "a" mi ritrovo con "018"... ma il codice che uso è questo:
d("a") = "0E"

quindi dovrei ricevere come risultato "0E" e non questo strano "018".... Qualcuno sa delucidarmi??


Non so perché, ma mi sembra che quei caratteri 01, 0E, li vede come esadecimali, e li converti in ASCII, prova ad usare "AE" o "AS" al posto di 0E e 01!
aaa
28/03/13 16:44
lukegh
Postato originariamente da LittleHacker:
Non so perché, ma mi sembra che quei caratteri 01, 0E, li vede come esadecimali, e li converti in ASCII, prova ad usare "AE" o "AS" al posto di 0E e 01!


Ho sostituito sia in codifica, sia in decodifica
d("a") = "AE"
e viceversa
Ora se codifico "Ciao" mi ritrovo con: "151E14182A" e decodificandolo ottengo: "CiAEo"
dove invece di "AE" dovrei avere "a"...

Questi sono degli esempi però se invece di "Ciao" scrivo una decina di parole credo che otterrò tantissimi errori simili...



Per essere più chiaro:
Nel pulsate di codifica ho: d("a";) = "AE"
invece nel pulsante di decodifica ho: d("AE";) = "a"

Nella textbox scrivo "a", codifico ed ottengo: "1418"
guarda caso 14 e 18 sono rispettivamente le codifiche di A ed E... quindi il programma non so perchè
prende "a" e lo codifica ricevendo "AE" <-- Cioè a codificato
però a sto punto invece di fermarsi mi fa la codifica anche di A e E


È possibile risolvere?
Ultima modifica effettuata da lukegh 28/03/13 16:56
aaa