Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    492

    [VB6] Recuperare valori da ListBox

    Salve a tutti
    una volta che ho popolato una listbox attraverso delle combobox, mi ritrovo in una situazione del genere all'interno della listbox:
    Testo: 1; A: 2; B: 6; C: 0....
    Testo: 6; A: 4; B: 92; C: 9....
    Testo: 6A; A: 9; B: 9; C: 8....
    Testo: 2; A: 0; B: 52; C: 32....

    Ora il mio problema, è come posso recuperare i valori per ogni riga per effettuare delle query distinte?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    I valori da recuperare sono quelli dopo il due punti?

    Esamina la lista utilizzando il vettore

    List(i)

    e per ogni riga puoi utilizzare la funzione Split per separare gli elementi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    492
    Si, i valori sono dopo o due punti
    Non è che avresti qualche esempio?

    Grazie in anticipo

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ne ho esempi dato che non mi e' mai capitato il tuo stesso problema.

    Ma, ovviamente, posso pensare a scrivere del codice in base a quello che ti ho detto prima ...

    Quindi, esamini ogni elemento del vettore List con del codice simile a questo

    codice:
        Dim i As Long
        Dim j As Long
        Dim s As String
        Dim v() As String
        For i = 0 To List1.ListCount - 1
            s = List1.List(i)
            v = Split(s)
            For j = 0 To UBound(v) Step 2
                Print Val(v(j));
            Next j
            Print
        Next i

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    492
    L'ho inserito nel mio progetto, ma in Val(v(j)) visualizzo solo il Label del mio valore, ora per poter prendere il valore associato, che può essere su uno o più caratteri numerici e non, ma che termina sicuramente o con ";" o se è l'ultimo con nessun carattere, come posso fare?
    Ho modificato il mio codice in modo che le righe della listbox possono non essere uguali, del tipo:


    Testo: 1; B: 6; C: 0....
    Testo: 6; A: 4; C: 9....
    Testo: 6A; A: 9; B: 9; C: 8....
    Testo: 2; A: 0; B: 52;....

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ho capito il problema che hai con il mio codice ... questo estrae i valori ...

    A proposito ... la stringa

    Testo:

    fa parte delle linee o no?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    492
    Si, Testo fa parte delle linee.
    Lasciando lo Step a 2, in Val(v(j)) recupero progressivamente solo i Label, per intenderci "Testo:", "A:" e così via. Ora ho impostato Step a 1 e preleva per ogni riga, per esempio per la riga "Testo: Libro1; LettereB: 6; LettereC: 0", questi valori Val(v(j)): "Testo:", "Libro1;", "LettereB:", "6;", "LettereC:", "0".
    Ora come potrei fare a inserire "Libro1" nella variabile NomeLibro avendo precedentemente incontrato il Label "Testo"?
    In quanto in questo modo avrò l'alternanza di label e valori, quindi sapendo quali possono essere i label, io so sicuramente che il Val(v(j)) seguente sarà il relativo valore e lo posso andare a mettere in una determinata variabile in base al Label incontrato precedentemente.
    Spero di essermi spiegato al meglio...anche se ammetto che non è facile

  8. #8
    tu hai un list con ad ogni riga dei valori separati da punti e virgola... tu vuoi quei valori?

    se si fai

    Public Function takeval(lista As ListBox, n°riga As Integer, n°val As Integer, delim As String) As String
    On Error GoTo errore
    a = Split(lista.List(n°riga), delim)
    takeval = a(n°val)
    errore:
    End Function

    Private Sub Command1_Click()
    MsgBox takeval(List1, 1, 5, ";")
    End Sub

    dichiarata la funzione principale (public fnuction....end function), puoi sempre inserire ovunque vuoi: takeval(oggetto list, numero riga, numero valore, elemento separatore dei valori).

    dato che la mia è una funzione, ricorda di assegnalra ad una variabile, o a un'istruzione come msgbox.

  9. #9
    scusa, mi sono accorto solo ora che non ho capito niente... :master:

    ma più rileggo la discussione più non capisco un tubo!!! VVoVe:
    ti dispiacerebbe inserire il codice che hai messo?
    Io non ho capito proprio niente, ma forse, col codice posso darti una mano.

    scusa ancora...
    ciao!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    492
    Si, è così
    Però avendo la lista come scheda riassuntiva di alcuni criteri di ricerca selezionati precedentemente attraverso combobox, la sequenza dei valori per ogni riga non segue sempre lo stesso ordine, pertanto devo avere la necessità di conoscere assolutamente il Label che precede il valore, in modo da sapere nella query dove andare a posizionare il valore selezionato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.