GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Ciao a tutti!
Mi sono imbattuto in un fatto molto strano che non riesco a capire. In un modulo ho fatto una Sub per aprire file "criptati". Ecco il codice:
Codice sorgente - presumibilmente VB.NET |
Public Sub Apri(Path As String, Testo As TextBox) Dim Inizio(1 To 99999) As String Dim I As Integer On Error Resume Next Open Path For Input As #1 Do I = I + 1 Line Input #1, Inizio(I) Decripta (Inizio(I)) Inizio(I) = Module1.TestoDecriptato Testo.Text = Testo.Text & Inizio(I) Loop Until EOF(1) = True Close #1 End Sub
|
Penso che non la funzione di criptaggio e di decriptaggio vadano bene perchè nella form load ho messo:
Codice sorgente - presumibilmente Plain Text |
Apri App.Path & "\File.dat", Text1
|
e lo carica correttamente nella text1 e decriptato.
Poi però volevo fare anche un pulsante che ricaricava direttamente il file senza chiudere e riaprire. Nel pulsante ho messo lo stesso codice.
Ma la cosa strana è che nella text1 mi carica il testo corretto e decriptato, ma due volte!
Facciamo ad esempio che il testo (decriptato) di note.dat sia: "ciao"
allora apro il progr. e nella text1 trovo:
ciao
facendo aggiorna invece trovo:
ciao
ciao
Come mai? come posso risolve? |
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Nel codice che aggiorna, all'inizio, devi scrivere
Testo.Text = ""
altrimenti il testo sara' sempre aggiunto ...
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Lo facevo a mano, cioè x vedere se fungeva cancellavo tutta la text1 ke era vuota eppure il testo si sommava...
p.s. ho provato anche a "ripulire" le variabili dopo l'uso ma niente
Ultima modifica effettuata da GrG il 05/06/2008 alle 20:27 |
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Inseriscilo nel codice ... e mostra tutto il codice esatto che stai utilizzando ... altrimenti come si fa una prova?
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Tu intendi il codice per criptare decriptare?
p.s. è Quello tutto il codice per l'apertura del file....
|
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Guarda che, personalmente, non ho capito quasi nulla di quello che fai e che ti succede ...
Dovresti spiegare meglio ...
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
cercherò di essere + kiaro...
Allora il codice postato all'inizio apre il file.dat contenente in maniera criptata un testo.
Nella form load c'è il codice ke rikiama la sub "Apri" q quindi il testo viene messo nella text1 correttamente.
Premendo un pulsante di aggiornamento, nel codice di questo pulsante ho messo lo stesso codice della form_load, uando carica il file nella text1 lo carica doppio (anche se la text1 è vuota).
capito?
Ultima modifica effettuata da GrG il 06/06/2008 alle 15:44 |
|
gantonio (Normal User)
Guru^2
Messaggi: 1532
Iscritto: 09/09/2007
|
Scusa ... mostra TUTTO (ma TUTTO) il codice del programma e poi ne parliamo ...
P.S. Secondo me non usi la
Testo.Text = ""
|
|
GrG (Member)
Guru^2
Messaggi: 3430
Iscritto: 21/08/2007
|
Nel Modulo:
Codice sorgente - presumibilmente VB.NET |
Public Inizio(1 To 99999) As String Public i As Integer Dim X As Integer Dim Lon As Integer Dim d() As String Public B As Integer Public TestoCriptato As String Public TestoDecriptato As String Public Sub Apri(Path As String, Testo As TextBox) On Error Resume Next Testo.Text = "" Open Path For Input As #1 Do i = i + 1 Line Input #1, Inizio(i) Decripta (Inizio(i)) Inizio(i) = Module1.TestoDecriptato Testo.Text = Testo.Text & Inizio(i) Loop Until EOF(1) = True Close #1 End Sub Public Function Cripta(Testo As String) For X = 1 To Len(Testo) TestoCriptato = TestoCriptato & ":" & (Asc(Testo) * 13) Lon = Len(Testo) Testo = Right(Testo, (Lon - 1)) Next X Lon = Len(TestoCriptato) TestoCriptato = Right(TestoCriptato, (Lon - 1)) End Function Public Function Decripta(Testo As String) On Error GoTo ErrD d = Split(Testo, ":") B = -1 For B = B + 1 To Len(Testo) TestoDecriptato = TestoDecriptato & Chr(d(B) \ 13) Next B ErrD: End Function
|
nel form (con command1):
Codice sorgente - presumibilmente VB.NET |
Private Sub Command1_Click() Apri App.Path & "\Note.dat", Text1 End Sub Private Sub Form_Load() Apri App.Path & "\Note.dat", Text1 Module1.i = 0 Module1.B = -1 End Sub
|
|
|