04/09/09 23:09
fusebyte
Senti,pero' ripeto c'è un problema,la tua parte di codice non funziona ne la mia,ne si ferma dopo 3 tentativi,ne crea il file di testo.
E non capisco perche',per me adesso il listato lo vedo ok.
boh...x=0 e x=x+1 sono posizionati bene...il resto pure...
NB:attento a Bitchchecker :-))))) ma glieli ha cancellati davvero,perche' quell'IP è un po' generico...
E non capisco perche',per me adesso il listato lo vedo ok.
boh...x=0 e x=x+1 sono posizionati bene...il resto pure...
NB:attento a Bitchchecker :-))))) ma glieli ha cancellati davvero,perche' quell'IP è un po' generico...
Ultima modifica effettuata da fusebyte 04/09/09 23:32
aaa
04/09/09 23:20
Leggi 4 post indietro. Nel mio, prima della tua domanda sul .BAT da VB6.
Sì, chè mi hackera
Sì, chè mi hackera
Ultima modifica effettuata da 04/09/09 23:24
04/09/09 23:45
fusebyte
Passiamo a quell'accozzaglia di codice, chiaramente frutto di anni di esperienza nella tecnica del collage:
--------------------------------------------------------------------------------------
Scusami se va a finire degenerando meglio che la finiamo qui.
Sbagli ,viene da anni di altro dove posso esserti maestro.
------------------------------------------------------------------------------------
Andiamo per gradi... non può funzionare. È chiaro che non puoi cacciare tutto in Form_Load(). Io non conosco il Vb.net, ma non penso che quel "dim x%" permetta alla variabile di mantenere il proprio valore dopo un riavvio del programma. Mi sembra una normale dichiarazione. Pensaci un attimo... Quella x, ogni volta che riavvii il programma, torna a valere 0, quindi non raggiungerà mai il valore 3!
Quando viene sbagliata la pw, il programma deve salvare il valore di x in un file, e recuperarlo quando viene riavviato. Cerco conferma da GrG, in quanto non sono sicuro dell'esatto significato di quella percentuale nella dichiarazione di x. Non vorrei che fosse una dichiarazione pubblica... Attendo risposte, e spero di essere stato chiaro.
-----------------------------------------------------------------------------------------
Sbagli ancora una Dichiarazione è una Dichiarazone ed assume il suo valore quando decidi
che lo abbia.
La percentuale è un INTEGER
Cmq preferisco che eviti di continuare ad aiutarmi in questo Thread,un grazie sincero dell'aiuto ma vedo che prendi altre strade...
Meglio stoppare qui.Ciao
--------------------------------------------------------------------------------------
Scusami se va a finire degenerando meglio che la finiamo qui.
Sbagli ,viene da anni di altro dove posso esserti maestro.
------------------------------------------------------------------------------------
Andiamo per gradi... non può funzionare. È chiaro che non puoi cacciare tutto in Form_Load(). Io non conosco il Vb.net, ma non penso che quel "dim x%" permetta alla variabile di mantenere il proprio valore dopo un riavvio del programma. Mi sembra una normale dichiarazione. Pensaci un attimo... Quella x, ogni volta che riavvii il programma, torna a valere 0, quindi non raggiungerà mai il valore 3!
Quando viene sbagliata la pw, il programma deve salvare il valore di x in un file, e recuperarlo quando viene riavviato. Cerco conferma da GrG, in quanto non sono sicuro dell'esatto significato di quella percentuale nella dichiarazione di x. Non vorrei che fosse una dichiarazione pubblica... Attendo risposte, e spero di essere stato chiaro.
-----------------------------------------------------------------------------------------
Sbagli ancora una Dichiarazione è una Dichiarazone ed assume il suo valore quando decidi
che lo abbia.
La percentuale è un INTEGER
Cmq preferisco che eviti di continuare ad aiutarmi in questo Thread,un grazie sincero dell'aiuto ma vedo che prendi altre strade...
Meglio stoppare qui.Ciao
Ultima modifica effettuata da fusebyte 04/09/09 23:54
aaa
04/09/09 23:59
Un po' di elasticità, scherzavo. Mi riferivo al fatto che metà del codice è uguale a come l'ho scritto io, ma probabilmente è perchè è più comodo fare copia incolla quando il codice è esatto. Risulta inutile riscriverlo. Non c'è bisogno di dire "scherzo" alla fine di ogni piccola ironia, si può anche sottointendere qualcosa.
"Sbagli ancora una Dichiarazione è una Dichiarazone ed assume il suo valore quando decidi
che lo abbia."
Non ne dubito, ma il comando dim non dichiara una variabile locale, solo per la sub corrente? Questo vuol dire che quando esci e rientri nella sub Form_Load(), le variabili dichiarate con dim non hanno mantenuto il loro valore.
Parlo di questo punto, poi se vuoi me ne vado:
x = x + 1
Se riavvii la form, x torna ad assumere il valore iniziale, considerando anche che assegni il valore 0 ad x ogni volta che Form_Load() viene eseguita. Non fai altro che continuare a fare 0 = 0 + 1, tutte le volte che esegui quella sub. O no?
"Sbagli ancora una Dichiarazione è una Dichiarazone ed assume il suo valore quando decidi
che lo abbia."
Non ne dubito, ma il comando dim non dichiara una variabile locale, solo per la sub corrente? Questo vuol dire che quando esci e rientri nella sub Form_Load(), le variabili dichiarate con dim non hanno mantenuto il loro valore.
Parlo di questo punto, poi se vuoi me ne vado:
x = x + 1
Se riavvii la form, x torna ad assumere il valore iniziale, considerando anche che assegni il valore 0 ad x ogni volta che Form_Load() viene eseguita. Non fai altro che continuare a fare 0 = 0 + 1, tutte le volte che esegui quella sub. O no?
Ultima modifica effettuata da 05/09/09 0:16
05/09/09 0:23
fusebyte
Errata corrige,era cosi':
La x deve tornare a 0 nel caso si volesse ripetere il ciclo,anche se a noi non serve,infatti dopo
If x = 3 then non ho messo
x=0
quindi
0=0+1
1=1+1
2=2+1
3
Il problema è che 1 anno fa' tutto funzionava,poi ho cominciato a modificare,ma quel listato + o - è rimasto lo stesso ed ora pur con le recenti modifiche non funziona.
OT:Se vuoi scherzare fai pure,non ho problemi tanto poi la rendo ,ma di solito si mette un :-) per farlo capire,almeno inizialmente...
Ciao
Private Sub Form_Load() If Dir("/WINDOWS/System32/checkerror.txt") <> "" Then End End If End sub
Private Sub cmdLogin_Click() Dim x% ' as Integer USSRer = "Awanaghana" Coker ="1234567890" x=0 If Text1.Text = "Awanaghana" And Text2.Text = "1234567890" Then Unload Me Form1.Visible = True '<--qui dove dobbiamo andare se l 'evento è superato Else Text1.Text = "" : Text2.Text = "" '<-- fino a qui gira bene Form1.Visible = False x = x + 1 If x = 3 Then frmLogin.Visible = False '<--qui capisci dove siamo Unload Me Open "/WINDOWS/System32/checkerror.txt" For Output As #1 'eventuale modif.appoggio rete Print #1, "1" Close #1 '<--- qui dove dovremmo andare se l 'evento è negativo End If End If End Sub
La x deve tornare a 0 nel caso si volesse ripetere il ciclo,anche se a noi non serve,infatti dopo
If x = 3 then non ho messo
x=0
quindi
0=0+1
1=1+1
2=2+1
3
Il problema è che 1 anno fa' tutto funzionava,poi ho cominciato a modificare,ma quel listato + o - è rimasto lo stesso ed ora pur con le recenti modifiche non funziona.
OT:Se vuoi scherzare fai pure,non ho problemi tanto poi la rendo ,ma di solito si mette un :-) per farlo capire,almeno inizialmente...
Ciao
Ultima modifica effettuata da fusebyte 05/09/09 0:30
aaa
05/09/09 0:47
Scusami, avevo l'occasione per ribattere a "tante parole pochi fatti" e l'ho colta al volo
Allora... Per sbagliare 3 volte il codice, una persona deve cliccare più di una volta su cmdLogin, giusto? E ogni volta viene eseguito quello spezzone di codice. Mi pare che non ci sia nessun ciclo nella sub... Comunque è semplice: Inserisci un breakpoint!
Comunque secondo me il fatto è che ogni volta che clicchi sul pulsante di login viene eseguito tutto questo codice, da cima a fondo, compreso "x = 0"... Non vedo scappatoie. Per sbagliare 3 volte, bisogna cliccare almeno 3 volte sul pulsante. Quindi ogni volta si resetta x... Almeno mi sembra di capire così.
Per fare una prova, fai così:
Ho solo eliminato il reset di x ad ogni esecuzione e resa la variabile pubblica, in modo da conservarne il valore anche durante i cicli successivi.
Provala, e dimmi se va... Io sono su Linux, è per me totale utopia far le scale, accendere il pc, accedere a Windows, aprire VB6, ricopiare tutta 'sta roba
Allora... Per sbagliare 3 volte il codice, una persona deve cliccare più di una volta su cmdLogin, giusto? E ogni volta viene eseguito quello spezzone di codice. Mi pare che non ci sia nessun ciclo nella sub... Comunque è semplice: Inserisci un breakpoint!
Private Sub cmdLogin_Click() Dim x% ' As Integer USSRer = "Awanaghana" Coker ="1234567890" x=0 If Text1.Text = "Awanaghana" And Text2.Text = "1234567890" Then Unload Me Form1.Visible = True '<--qui dove dobbiamo andare se l 'evento è superato Else Text1.Text = "" : Text2.Text = "" '<-- fino a qui gira bene Form1.Visible = False x = x + 1 'Inserisci un breakpoint qui, così ad ogni giro puoi leggerti i valori di x! If x = 3 Then frmLogin.Visible = False '<--qui capisci dove siamo // non me n'ero accorto :-P Unload Me Open "/WINDOWS/System32/checkerror.txt" For Output As #1 'eventuale modif.appoggio rete Print #1, "1" Close #1 '<--- qui dove dovremmo andare se l 'evento è negativo // Cioè una volta sbagliate 3 pw End If End If End Sub
Comunque secondo me il fatto è che ogni volta che clicchi sul pulsante di login viene eseguito tutto questo codice, da cima a fondo, compreso "x = 0"... Non vedo scappatoie. Per sbagliare 3 volte, bisogna cliccare almeno 3 volte sul pulsante. Quindi ogni volta si resetta x... Almeno mi sembra di capire così.
Per fare una prova, fai così:
'in dichiarazioni generali di frmLogin: Public x as Integer = 0 'torniamo alla sub... Sempre in frmLogin, se non ho capito male: Private Sub cmdLogin_Click() 'qui ho cancellato la dichiarazione con "dim" USSRer = "Awanaghana" Coker ="1234567890" 'qui ho cancellato "x = 0" If Text1.Text = "Awanaghana" And Text2.Text = "1234567890" Then Unload Me Form1.Visible = True Else Text1.Text = "" : Text2.Text = "" Form1.Visible = False x = x + 1 If x = 3 Then frmLogin.Visible = False Unload Me Open "/WINDOWS/System32/checkerror.txt" For Output As #1 Print #1, "1" Close #1 End 'qui ho aggiunto End, altrimenti scarichi le form senza chiudere il programma. Da noi dicono "l'è mei aver i brag rot in t'al cul c'al cul rot in t'il brag", che io intendo con "prendi gli accorgimenti necessari a costo di sacrificare tempo o denaro" XDXD End If End If End Sub
Ho solo eliminato il reset di x ad ogni esecuzione e resa la variabile pubblica, in modo da conservarne il valore anche durante i cicli successivi.
Provala, e dimmi se va... Io sono su Linux, è per me totale utopia far le scale, accendere il pc, accedere a Windows, aprire VB6, ricopiare tutta 'sta roba
Ultima modifica effettuata da 05/09/09 1:27
05/09/09 1:47
fusebyte
Public x As Integer = 0
da errore ed è normale che lo dia.
Public x As Integer(0)
Cosi'lo stesso ma non saprei...andiamo sugli array cosi'
Ma che caxx...è che non quadra...
da errore ed è normale che lo dia.
Public x As Integer(0)
Cosi'lo stesso ma non saprei...andiamo sugli array cosi'
Ma che caxx...è che non quadra...
Ultima modifica effettuata da fusebyte 05/09/09 1:49
aaa