16/12/07 18:46
gius
Con la funzione print nn mi scrive niente nel form ecredo che nn funz la criptazione
aaa
16/12/07 19:27
LuigiBiasi
se vuoi usare la funzione Print sul form devi fare cosi:
Private Sub Form_Load()
Form1.Show
Print "messaggio di prova"
End Sub
con questo esempio puoi scrivere sul form.
Comunque credo ke sia meglio usare una textbox x visualizzare i contenuti di quelle variabili.
Perchè stampare testo su form??.
Al massimo usate messagebox.
Quindi il codice diviene:
Option Explicit
Private Const Chiave As String = "!àéèìòù°+*]-.,;QWERTYUIOPASDFGHJKLZXCVBNM:_£$%&/()=?123456789qwertyuiopasdfghjklzxcvbnm<>{}"
Private Function Cripta(ByVal Testo As String) As String
Dim ix As Long
For ix = 1 To Len(Testo)
Cripta = Cripta & Mid$(Chiave, Asc(Mid$(Testo, ix, 1)) - 31, 1)
Next ix
End Function
Private Function DeCripta(ByVal Testo As String) As String
Dim ix As Long
For ix = 1 To Len(Testo)
DeCripta = DeCripta & Chr$(InStr(Chiave, Mid$(Testo, ix, 1)) + 31)
Next ix
End Function
Private Sub Form_Click()
Dim TC As String
Dim TD As String
TC = Cripta("Essere o non essere")
Form1.Show
Print TC
TD = DeCripta(TC)
'Form1.Show
Print TD
End Sub
Ciao.
Ultima modifica effettuata da LuigiBiasi 16/12/07 19:30
aaa
16/12/07 21:30
gantonio
Non so quale sia il vostro problema ma l'istruzione (e non funzione) Print visualizza correttamente sul form principale i dati che sono indicati subito dopo.
Per Luigi ... la Print sul form (come la Debug.Print) e' usata solamente durante i test dei programmi e per finalita' di debugging da tutti i programmatori professionisti.
E' evidente che la stringa finale debba essere impiegata in mille modi (su file, dentro una textbox, ovunque ...) ma la Print ti permette una sua rapida visualizzazione ed e' molto piu' comoda della MsgBox.
In ogni caso, non e' necessario richiamare la Show del form perche' la prova della funzionalita' viene eseguita al semplice click sul form che e' evidentemente gia' visualizzato ...
aaa
18/12/07 7:05
gius
Ho apportato alcune modifiche alla criptazione che ho postato all'inizio e funz molto meglio della fnzione di gantonio
Sub CriptaStringa( stringadacriptare As String)
Dim STRINGA As String
Dim LUNGHEZZA As Integer
Dim CHIAVE As Long
LUNGHEZZA = Len(stringadacriptare)
STRINGA = "!éè+*]-.,;:£$%&/()=?123456789qwertyuiopasdfghjklzxcvbnm"
If LUNGHEZZA > CHIAVE Then LUNGHEZZA = 30
CHIAVE = Asc(Val(stringadacriptare)) & Mid(STRINGA,LUNGHEZZA)
MsgBox "CHIAVE"
End Sub
e la relativa decriptazione
Sub DeCriptaStringa( stringadadecriptare As String)
Dim CHIAVEDECRIPTATA As Long
CHIAVEDECRIPTATA = Chr(Val(stringadadecriptare))
MsgBox "CHIAVEDECRIPTATA"
End Sub
Ultima modifica effettuata da gius 18/12/07 7:06
aaa
18/12/07 10:08
gantonio
Scusa gius, ma tu sei un programmatore?
Hai provato almeno il codice che dici che funziona meglio del mio?
Il tuo codice ha errori gravi dal punto di vista sintattico (infatti non viene neanche compilato) ed e' assolutamente senza senso dal punto di vista dell'algoritmo usato.
Un consiglio ... usa il mio ... magari miglioralo, ma parti da quello ...
aaa
18/12/07 13:18
gius
gantonio se ti senti presuntuoso a prescindere statti a casa,questa é una community dove ognuno aiuta l'altro sicuramente nn dicendo "Ma tu sei un programmatore?" si che puoi contestare quello che ho postato ma almeno con moderazione
P.S.Questo topic sta diventando un pò troppo
Ultima modifica effettuata da gius 18/12/07 13:19
aaa
18/12/07 15:43
P4p3r0g4
però ammetti che il codice che hai postato è completamente assurdo... capisco che sei giovane e inesperto ma non pretendere di dire cazzate (del genere) e poi non essere ammonito...
Ultima modifica effettuata da P4p3r0g4 18/12/07 15:47
aaa