Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

Programma Visual basic Aiuto
(Questo messaggio è stato modificato l'ultima volta il: 20/10/2012, 17:00 da Danyele360.)

Danyele360
Messaggi: 688
Discussioni: 37
Registrato: 12-2011
Reputazione:
43

Mix: 0
Vorrei creare un Convertitore che dovrebbe fare una cosa del genere..
metto 2 text box in uno scrivo esempio
ciao
nel text box 2 mi deve apparire i numeri che abbino io alle lettere
a=1
b=2
c=3
d=4
e=5
f=6
g=7
Text box 1 Parola = abcef
Text box 2 =12356
Avete capito?? help Lo voglio creare con visual basic oppure con c++ lo stesso basta che lo faccio Happywide
mi vengono alcuni dobbi aiutamtemi Happywide

20/10/2012, 16:36
#1
Cerca

1 Life, 1 Avatar <3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Reputazione:
77

Mix: 0
Hai gia un progetto???

20/10/2012, 19:41
#2
Cerca

Danyele360
Messaggi: 688
Discussioni: 37
Registrato: 12-2011
Reputazione:
43

Mix: 0
Cosa?? da cui prendo spunto? No mi è venuto di fare sta cosa poi se riesco pubblico il programma ;D

20/10/2012, 19:56
#3
Cerca

1 Life, 1 Avatar <3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Reputazione:
77

Mix: 0
No nel senso hai gia iniziato a scrivere qualcosa anche solo 2 righe o proprio sei a zero?
Beh io direi che devi usare i VK e per ogni lettera metti un valore che è codificato come vuoi tu, poi nel codice deve esserci una textbox nel quale viene scritta la parola codificata...

20/10/2012, 21:17
#4
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 20/10/2012, 21:41 da Danyele360.)

Danyele360
Messaggi: 688
Discussioni: 37
Registrato: 12-2011
Reputazione:
43

Mix: 0
Si ho in mente una cosa del genere
    C++ Programming
  1. #define a 12
  2. #define b 13
  3. //ecc


Ma non so cosa mettere nel text box2 non so il codice da scrivere. .
ancora esempio non so se mi spiego
ab = 1213
abba ba= 12131312 1312
Capito?? Smile
edit
insomma un convertitore che da lettere li trasforma a numeri!

20/10/2012, 21:38
#5
Cerca

maurow
Messaggi: 6,041
Discussioni: 2,066
Registrato: 03-2011
Reputazione:
133

Mix: 8,107
appena entra super dig risolve tutto , devi solo aver pazienza xd


La libertà non si insegna, è una scelta individuale.
20/10/2012, 22:10
#6
Cerca

Danyele360
Messaggi: 688
Discussioni: 37
Registrato: 12-2011
Reputazione:
43

Mix: 0
Infatti aspetto a lui Happywide

20/10/2012, 22:10
#7
Cerca

1 Life, 1 Avatar <3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Reputazione:
77

Mix: 0
Nono dubito che tu possa farlo con i define, perchè pensa a quando fai un hack , define glasswalls...
Beh glasswalls non è mica una cosa che scrivi e che la cambi in 4 in modo che non vengono piu i muri xd

20/10/2012, 23:11
#8
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Reputazione:
106

Mix: 3,737
intendi una cosa cosi ? muahahah Asd Happywide

[Immagine: 02a14-0e273322-b017-4815-b7a5-71ed5c90134f.png]


digger
21/10/2012, 0:13
#9
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 21/10/2012, 8:23 da [email protected].)

WarRock Hacks Coder
Messaggi: 940
Discussioni: 47
Registrato: 03-2011
Reputazione:
69

Mix: 0
epic Happywide

Cmq non è poi così complicato, ogni lettera non è altro che un numero in codifica ascii, basta sottrarre 64

Ad esempio la lettera 'A' vale 65, se togli 64 ti diventa 1, la 'B' vale 66, e così via, basta che ti vai a vedere la tabella ascii

poi con un bel ciclo for scansioni una ad una le lettere della textbox (estrai la stringa e poi fai .tochararray() così tutto il testo è diviso in un array di char) e le trasformi in int (sottraendo quindi il 64 )

ovviamente tutto sto discorso vale per .net (tutti i riferimenti che ho usato, tipo .tochararray, sono riferiti a .net [visual c#))

ma tu devi considerare il concetto..poi lo adatti tu al vb..

in c++ non ti conviene, anche perchè non ci sono le textbox, quello è visual c++ ed è tutto un altro mondo..

21/10/2012, 8:22
#10
Cerca

1 Life, 1 Avatar <3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Reputazione:
77

Mix: 0
D'accordissimo con skyline :3
Digger hai sbagliato completamente, lui voleva una cosa con gli spazi, che buffone che sei Tounge

21/10/2012, 9:45
#11
Cerca

Danyele360
Messaggi: 688
Discussioni: 37
Registrato: 12-2011
Reputazione:
43

Mix: 0
Si ma e così solo che voglio dare io il valore alle lettere. .
Digger e giusto solo che devo dare anchè gli spazi!
Sto cominciano con visual basic!
ma non so il codice da scrivere Sad

21/10/2012, 13:11
#12
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 21/10/2012, 13:58 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Reputazione:
106

Mix: 3,737
e dove sta il problema degli spazi ? Happywide

[Immagine: 02a15-164c5c4c-3226-49f8-9a03-db9cc3b586b1.png]

Pocciox vengo li e ti pesto Happywide
Per Sky, ho fatto un po' diverso da come dici tu.
Comunque ecco qui il source:

    VBNET Programming
  1. Public Class frm_main
  2. Dim associazione As New ArrayList
  3. Dim aList As New ArrayList
  4. Dim myRnd As New Random
  5.  
  6. Private Sub CreaAssociazione()
  7. Dim i As Integer
  8.  
  9. For i = 0 To 127
  10. aList.Add(i)
  11. Next
  12.  
  13. For i = 0 To 127
  14. Dim rnd As Integer = myRnd.Next(aList.Count)
  15. associazione.Add(aList(rnd))
  16. aList.RemoveAt(rnd)
  17. Next
  18. End Sub
  19.  
  20.  
  21.  
  22. Private Sub btn_codifica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_codifica.Click
  23. txt_codificato.Clear()
  24. For Each carattere As Char In txt_originale.Text
  25. 'txt_codificato.Text &= Strings.Right("00" & Asc(carattere) - 32, 3) '<- versione ASCII
  26. txt_codificato.Text &= Strings.Right("00" & associazione(Asc(carattere)), 3)
  27. txt_codificato.Text &= " "
  28. Next
  29. End Sub
  30.  
  31. Private Sub btn_decodifica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_decodifica.Click
  32. Dim i As Integer
  33. Dim quad As Integer = txt_codificato.Text.Count / 4
  34. Dim terna As String
  35.  
  36. txt_decodificato.Clear()
  37.  
  38. For i = 0 To quad - 1
  39. terna = txt_codificato.Text.Substring(i * 4, 3)
  40. 'txt_decodificato.Text &= Chr(Integer.Parse(terna) + 32) '<- versione ascii
  41. txt_decodificato.Text &= Chr(associazione.IndexOf(Integer.Parse(terna)))
  42. Next
  43.  
  44. End Sub
  45.  
  46. Private Sub frm_main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  47. CreaAssociazione()
  48. End Sub
  49. 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 Asd

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


digger
21/10/2012, 13:43
#13
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Reputazione:
77

Mix: 0
guarda che capisco cosa c'è scritto nel codice Smile

21/10/2012, 14:06
#14
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 21/10/2012, 14:10 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Reputazione:
106

Mix: 3,737
ma si, si scherza Smile
e comunque alla fine il codice è davvero semplice, non ci sono cose strane, le uniche cose particolari secondo me sono l'uso dei caratteri della stringa e l'uso dell'arraylist.
Un arraylist l'ho usato per creare i numeri casuali, ho fatto cosi per creare una lista di numeri univoci, magari ci sono altri modi ma questo mi piaceva Happywide
L'altro arraylist (associazione), uno sarebbe tentato da usare un normale array, ma ho usato l'arraylist perchè ha la funzione IndexOf che fa la ricerca nell'array, proprio quello che serve a noi per andare a ripescare la lettera in base al numero quando facciamo la decodifica


digger
21/10/2012, 14:07
#15
Cerca


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  [aiuto] No segnale su sapphire R9 280. Pocciox 5 927 14/01/2015, 22:11
Ultimo messaggio: digger
  aiuto portatile oirad94 1 684 22/12/2014, 16:27
Ultimo messaggio: Admin
  Aiuto Nella Definizone Rokys091 9 1,360 25/11/2014, 10:24
Ultimo messaggio: digger



Utenti che stanno guardando questa discussione: 1 Ospite(i)