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

Programma Visual basic Aiuto

Danyele360
Messaggi: 690
Discussioni: 37
Registrato: 12-2011
Mix: 727
Digger quindi devo solo modificare questo?
    C++ Programming
  1. Private Sub CreaAssociazione()
  2. Dim i As Integer
  3.  
  4. For i = 0 To 127
  5. aList.Add(i)
  6. Next
  7.  
  8. For i = 0 To 127
  9. Dim rnd As Integer = myRnd.Next(aList.Count)
  10. associazione.Add(aList(rnd))
  11. aList.RemoveAt(rnd)
  12. Next
  13. End Sub


la lettera "i" cosa corrisponde?
Mi dici dove devo scrivere le lettere e il valore che gli do?
lo devo mettere dopo
    C++ Programming
  1. Private Sub CreaAssociazione()
  2. Dim i As Integer

che devo scrivere Smile

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

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
Ti faccio l'esempio solo per le lettere dalla a alla f

    VBNET Programming
  1. Private Sub CreaAssociazione()
  2. Dim i As Integer
  3.  
  4. For i = 0 To 127
  5. associazione.Add(0)
  6. Next
  7.  
  8. associazione(Asc("a")) = 11 '<- se lo fai cosi è piu leggibile, altrimenti come sotto
  9. associazione(9<img src="https://hackmix.altervista.org/images/smilies/cool.png" alt="Cool" title="Cool" class="smilie smilie_56" /> = 12 'b
  10. associazione(99) = 13 'c
  11. associazione(100) = 14 'd
  12. associazione(101) = 15 'e
  13. associazione(102) = 16 'f
  14. End Sub



il resto mettilo tu
in questo modo l'array è tutto inizializzato a 0
e solo le lettere che ti interessano le inizializzi al valore che vuoi

Prova a scrivere abcdefg
vedrai che dalla a alla f funziona, mentre l'ultimo ti esce 000
perchè la g non l'hai inizializzata,
questo per dire che devi associare tutte le lettere e i caratteri che può capitarti di dover convertire, ad esempio lo spazio, le parentesi, il punto esclamativo e interrogativo e cosi via.
In poche parola partendo dalla tabella ascii tutte le posizioni dalla 32 alla 125 (o 126 se vuoi il tilde)

buon lavoro Happywide

EDIT:
giusto per completare il discorso, l'arraylist prevede di aggiungere un range di valori, ad esempio:

    VBNET Programming
  1. associazione.AddRange(New Integer() {0, 1, 2, 3}) ' etc etc



Però in questo caso è poco pratico, perchè a te interessando solo dal 32 al 126 quindi ti toccherebbe a mano mettere 32 valori a 0 (o altro) per poi mettere quelli che ti interessano. l'altro difetto è che non capiresti quale lettera è associata a cosa, avresti una cosa cosi:

{0,0,0,0,0,0,0,0,0,0,0,0,0,......,11,12,13,14,15,,,...}

diciamo che vuoi cambiare la b... qual è? boh, direi quel 12 li, ma non è cosi facile da trovare.

EDIT: ho modificato una riga del codice sopra, facci caso, quella alla lettera 'a', fatto cosi è piu leggibile, almeno se devi poi modificare qualcosa vedi subito dove devi andare a toccare


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

Danyele360
Messaggi: 690
Discussioni: 37
Registrato: 12-2011
Mix: 727
Ok grazie funziona solo io voglio dare il valore esempio a = [[29659233]] mi da errore alle parentesi quadrate uffa!
un'altro aiuto? Happywide
edit risolto quelle delle parentesi risoltoooooooooooo Happywide solo che scrivo a a e mi appare
[[29659233]] [[0]] [[29659233]]
[[0]] non deve apparire aiutami!
ho capito il problema
    C++ Programming
  1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  2. For Each carattere As Char In TextBox1.Text
  3. TextBox2.Text &= " " //è qui il problema dello [[0]] come faccio help
  4. TextBox2.Text &= Strings.Right("[[" & associazione(Asc(carattere)), 100)
  5. TextBox2.Text &= Strings.Left("]]", 100)
  6. Next
  7. End Sub



21/10/2012, 16:05
#18
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
non ho capito il perchè delle parentesi quadre...
comunque occhio che devi decidere quanti caratteri usare per ogni lettera, perchè poi ti serve in decodifica, il programma ora ne usa 3.
Comunque io ora esco quindi se mi scrivi per un po' non avrai risposta Wink


digger
21/10/2012, 16:09
#19
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
Dany occhio a scrivere in C++ mi raccomando Asd

21/10/2012, 16:27
#20
Cerca

WarRock Hacks Coder
Messaggi: 940
Discussioni: 47
Registrato: 03-2011
Mix: 0
(21/10/2012, 13:43)digger Ha scritto:

[Per vedere i link devi REGISTRARTI.]

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

Premetto che non mi sono voluto fermare a lungo a leggere il codice, ma mi viene spontanea una domanda:

La mente malata di Skyline Ha scritto:Ma se usi un random, significa che nel momento in cui tu chiudi e riapri il programma la codifica cambia, cioè la stessa frase verrebbe codificata in due modi diversi, quindi se tu hai una versione codificata di una frase salvata e in futuro decidi di decodificarla con lo stesso programma, non risalirai mai più all'originale....sbaglio??


21/10/2012, 16:34
#21
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
Sbagli, perchè ....
digger ha sempre ragione.

21/10/2012, 16:36
#22
Cerca

Danyele360
Messaggi: 690
Discussioni: 37
Registrato: 12-2011
Mix: 727
a me serve solo nel codificarla nel decodifica non mi interessa poi vedrete a che serve il mio bel programma Happywide
allora come risolvo il [[0]]??

21/10/2012, 17:00
#23
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
ahah la risposta di pocciox mi piace tantissimo, vorrei tenerla buona ma...
hai ragione è proprio cosi, ma non è un bug del programma, semplicemente quello è uno step successivo, che però farà il coder a cui interesserà farlo, a me non interessa quindi non lo faccio.
Lo step successivo è quello che ho suggerito a Dany, ovvero di creare un file di configurazione che crea la tabella di conversione.
Nel suo caso la scriverà a mano, nel mio dovrei aggiungere una funzione che prende l'array in memoria e lo scrive su disco in quel file e poi all'apertura (o con opportuna scelta da menu con file dialog) se lo ricarica da disco.
Lo scopo di questo programma era solo dare l'idea a Dany di come implementare la codifica, il resto saranno ca**i, ehm, problemi di chi dovrà sviluppare il programma definitivo Wink

Dany, continuo a non capire le tue domande


digger
21/10/2012, 21:37
#24
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
ahhh dany stai cercando di cracckare hackmix vero Asd Asd

21/10/2012, 21:37
#25
Cerca

Danyele360
Messaggi: 690
Discussioni: 37
Registrato: 12-2011
Mix: 727
No e poi perchè dovrei farlo O.o
digger quando scrivo "a a" funziona la conversione ma mi converte anche lo spazio in [[0]] in pratica ho scritto che al numero deve apparire prima "[[" e alla fine del numero "]]" capito??
a a = [[2145]] [[0]] [[2145]] capitoo???
[[0]] non deve apparire si può togliere?

21/10/2012, 22:52
#26
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 21/10/2012, 23:24 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
ah ora ho capito, non avevo capito che volevi mettere la doppia quadra per racchiudere ogni lettera codificata.
Beh ti mette [[0]] perchè anche lo spazio è un carattere e come tale te lo codifica, altrimenti cosa vorresti che apparisse al posto del [[0]] ?

Se te ne freghi e ti va bene che non compaia niente basta che nel ciclo fai un controllo, il carattere da convertire è uno spazio? allora non fare niente, altrimenti codifica


digger
21/10/2012, 23:21
#27
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 21/10/2012, 23:59 da Danyele360.)

Danyele360
Messaggi: 690
Discussioni: 37
Registrato: 12-2011
Mix: 727
Fine del programma lo fatto così veloce veloce non lo posto adesso domani creo una discussione ;D
ecco il link provatelo vi ripeto è una versione di prova

[Per vedere i link devi REGISTRARTI.]

[Per vedere i link devi REGISTRARTI.]

Praticamente vi spiego tutto in 2 parole

[Per vedere i link devi REGISTRARTI.]

vedete queste lettere?? nella foto?
andate su facebook e copiate il testo codificato e vedrete Happywide solo nella chat funziona Tounge
edit aggiunto screen

[Per vedere i link devi REGISTRARTI.]



21/10/2012, 23:52
#28
Cerca

WarRock Hacks Coder
Messaggi: 940
Discussioni: 47
Registrato: 03-2011
Mix: 0
perchè proprio non riesci a scrivere delle frasi comprensibili in max 10 riletture??

L'ho riletto 200 volte il tuo ultimo post ma non capisco ancora che vuol dire Happywide

intanto provo il programma, anche se non ho capito cosa deve fare e quindi cosa devo 'controllare' Asd Asd

22/10/2012, 8:52
#29
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 22/10/2012, 10:19 da Danyele360.)

Danyele360
Messaggi: 690
Discussioni: 37
Registrato: 12-2011
Mix: 727
Il testo che codifichi lo copi e lo incolli nella chat di facbook e vedi Happywide
Edito cosa è che non capisci?? Avevo fretta ieri Happywide

22/10/2012, 10:17
#30
Cerca


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



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