Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Verificare dati dall'interno di listbox
Forum - Visual Basic 6 - Verificare dati dall'interno di listbox

Avatar
queen_live78 (Ex-Member)
Newbie


Messaggi: 12
Iscritto: 22/04/2009

Segnala al moderatore
Postato alle 10:52
Sabato, 07/08/2010
Buongiorno a tutti ho realizzato un programmino che estrae dei numeri a caso, tutti i numeri estratti vengono aggiunti ad una listbox e successivamente incrementano la proprietà caption di una label, mostrando a schermo il risultato delle estrazioni, ho la neccessità di verificare i numeri presenti nella listbox per vedere se il numero estratto gia' esiste, nel caso esistesse continuerei lìestrazione e non aggiungerei il risultato a video... non so se mi sono spiegato bene .... qualche consiglio ?8-|

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 11:19
Sabato, 07/08/2010
Per ogni numero estratto scorri la lista, se esiste prosegui con un'altra estrazione
Codice sorgente - presumibilmente VB.NET

  1. For i = 0 To List.ListCount - 1
  2.     If List.List(i) = NumeroEstratto Then
  3.         Esiste = True
  4.     Else
  5.         Esiste = False
  6.     End If
  7. Next



P.S.
Usare una listbox per il tuo scopo non è il massimo. Sarebbe meglio un array.

Ultima modifica effettuata da Alfonso il 07/08/2010 alle 11:23
PM Quote
Avatar
queen_live78 (Ex-Member)
Newbie


Messaggi: 12
Iscritto: 22/04/2009

Segnala al moderatore
Postato alle 23:22
Sabato, 07/08/2010
Non riesco a capire perche' non mi funziona strano.....

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 0:08
Domenica, 08/08/2010
Posta il codice che non funziona!

PM Quote
Avatar
queen_live78 (Ex-Member)
Newbie


Messaggi: 12
Iscritto: 22/04/2009

Segnala al moderatore
Postato alle 9:19
Domenica, 08/08/2010
Certo...

allora per l'estrazione del numero utilizzo una funzione chiamata RandomRange
Codice sorgente - presumibilmente VB.NET

  1. Private Function RandomRange(ByVal NumMin As Long, ByVal NumMax As Long) As Long
  2.  
  3.   'Inizializza il generatore di numeri casuali.
  4.   Randomize
  5.  
  6.   'genera il numero casuale
  7.   RandomRange = Int((NumMax - NumMin + 1) * Rnd + NumMin)
  8.  
  9. End Function







nel mio progetto ho inserito un oggetto timer : che all'interno... ha il seguente codice:

Codice sorgente - presumibilmente Visual Basic 6

  1. Dim NumeroCasuale As Long
  2.  
  3. NumeroCasuale = RandomRange(XPText1.Text, XPText2.Text)
  4. Label1.Caption = NumeroCasuale




il timer1 viene stoppato dall'ingresso del timer2


fatto questo una volta che timer1 veniva stoppato avevo un numero da aggiungere alla xplist1


Codice sorgente - presumibilmente VB.NET

  1. If Label1.Caption <> 0 Then
  2.  
  3. XPList1.AddItem Label1.Caption
  4.  
  5. Label12.Caption = Label12.Caption & " - " & Label1.Caption
  6.  
  7.  Else
  8.        
  9.    
  10.        ''Timer1.Enabled = True
  11.        
  12.     End If



COn questo funziona tutto, unico problema .... se si da un range di numeri molto basso puo' capitare che un numero gia' estratto esca per la seconda volta allora avevo pensato di filtrare il numeri estratti , verificandoli prima di aggiungerli alla xplist1, ho applicato il tuo esempio ma non riesco a cavarne piede, in pratica non succede niente...


il codice postato sopra applicando il tuo esempio è cosi'
Codice sorgente - presumibilmente VB.NET

  1. If Label1.Caption <> 0 Then
  2.  
  3.  For i = 0 To XPList1.ListCount - 1
  4.  If XPList1.List(i) = NumeroCasuale Then
  5.      XPList1.AddItem Label1.Caption
  6.  
  7. Label12.Caption = Label12.Caption & " - " & Label1.Caption
  8.  
  9.  Else
  10.        
  11.    
  12.        Timer1.Enabled = True
  13.        
  14.     End If
  15. Next
  16.  
  17.  End If



nella label12.caption non succede niente , non viene aggiunto nessun valore compresa la xplist1....


che puo' essere ?8-|

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 11:20
Domenica, 08/08/2010
Mi sembra di capire che NumeroCasuale sia dichiarato all'interno della sub del Timer1, per cui non vedibile dalla routine che aggiunge il numero estratto.

Se metti Option Explicit nelle dichiarazioni del form, ti verrà subito segnalato che nella Sub
Codice sorgente - presumibilmente VB.NET

  1. If Label1.Caption <> 0 Then
  2.    For i = 0 To XPList1.ListCount - 1
  3.         If XPList1.List(i) = NumeroCasuale Then
  4.             XPList1.AddItem Label1.Caption
  5.             Label12.Caption = Label12.Caption & " - " & Label1.Caption
  6.         Else
  7.             Timer1.Enabled = True
  8.         End If
  9.    Next
  10. End If



NumeroCasuale è <Variabile non definita>
Dim NumeroCasuale as long deve essere messo nelle dichiarazioni del form.

In ogni caso usando Label1 come deposito dei numeri estratti, NumeroCasuale è superfluo. La tua sub diventa:

Codice sorgente - presumibilmente VB.NET

  1. If Label1.Caption <> 0 Then
  2.  
  3.    Dim Esiste as boolean
  4.    Esiste=False
  5.    For i = 0 To XPList1.ListCount - 1
  6.         If XPList1.List(i) = Label1.CaptionThen
  7.             Esiste=true
  8.             Exit for
  9.         End If
  10.    Next
  11.  
  12.    If Esiste = False then
  13.        XPList1.AddItem Label1.Caption
  14.        Label12.Caption = Label12.Caption & " - " & Label1.Caption
  15.        Timer1.Enabled = False
  16.     End If
  17.  
  18. End if


PM Quote
Avatar
queen_live78 (Ex-Member)
Newbie


Messaggi: 12
Iscritto: 22/04/2009

Segnala al moderatore
Postato alle 18:42
Domenica, 08/08/2010
ottimo è perfetto, funziona benissimo hai colto il problema nel segno !!! Grazie mille ancora:k:

Ultima modifica effettuata da queen_live78 il 28/08/2010 alle 18:58
PM Quote