Visualizzazione dei risultati da 1 a 4 su 4

Discussione: aiuto x listbox

  1. #1

    aiuto x listbox

    Premetto che sono alle prime armi con Vb6.
    allora io ho una listbox da cui prendo l'indice selezionato.
    ora io voglio fare che ad ogni indice selezionato
    mi scriva in un'altra listbox dei valori presi da file di testo
    ho provato cosi' ma ad ogni click mi aggiunge del testo nella listbox2
    invece mi deve mettere solo quello relativo al file selezionato.
    mi ci date un occhiata x favore .
    so che e' semplice ma non ci riesco.
    Grazie anticipate
    ====================================

    Private Sub List1_Click()
    Dim indice As Integer
    Dim nomefile As String
    indice = List1.ListIndex
    Label1.Caption = indice
    Select Case indice
    Case 0
    nomefile = "c:\1.txt"
    Open nomefile For Input As #1
    While Not EOF(1)
    Input #1, nomefile
    List2.AddItem (nomefile)
    Close #2
    Wend
    Case 1
    nomefile = "c:\2.txt"
    Open nomefile For Input As #2
    While Not EOF(2)
    Input #2, nomefile
    List2.AddItem (nomefile)
    Close #1
    Wend

    End Select
    End Sub

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    L'algoritmo è corretto. Se ho capito bene il tuo problema è che si aggiunge del testo nella ListBox2 a quello già presente...

    Se è così, aggiungi un clear all'inizio della procedura:
    "List2.Clear"

    Ciao.

  3. #3

    re

    Tui ringrazio per la risposta ma avevo gia' provato con list.clear
    modificando la sub,ora mi seleziona correttamente il file pero' c'e' un'altro problema se faccio click una volta su una riga funziona,ma se riclikko un'altra volta me la svouta lasciando la riga vuota.

    la modifica fatta e' la seguente

    Private Sub List1_Click()
    Dim click As Integer
    Dim indice As Integer
    Dim nomefile As String
    indice = List1.ListIndex
    Label1.Caption = indice
    Select Case indice

    Case 0

    List2.Clear
    nomefile = "c:\1.txt"
    Open nomefile For Input As #1
    While Not EOF(1)
    Input #1, nomefile
    List2.AddItem (nomefile)
    Close #2, #3, #4

    Label2.Caption = click
    Wend

    Case 1
    List2.Clear
    nomefile = "c:\2.txt"
    Open nomefile For Input As #2
    While Not EOF(2)
    Input #2, nomefile
    List2.AddItem (nomefile)
    Close #1, #3, #4
    Wend
    Case 2
    List2.Clear
    nomefile = "c:\3.txt"
    Open nomefile For Input As #3
    While Not EOF(3)
    Input #3, nomefile
    List2.AddItem (nomefile)
    Close #1, #2, #4
    Wend
    Case 3
    List2.Clear
    nomefile = "c:\4.txt"
    Open nomefile For Input As #4
    While Not EOF(4)
    Input #4, nomefile
    List2.AddItem (nomefile)
    Close #1, #2, #3
    Wend
    End Select
    end sub

    in pratica per essere piu' chiaro il mio intento e' questo:
    ho due list box denominate list1 e list2.
    la list1 al form_load mi carica il testo da un file che deve essere i titoli
    ad esempio di 10 album musicali.
    ora cliccando un item di list1 mi deve caricare in list2
    tutti i pezzi dell'album associato.
    Spero di esser stato chiaro
    Grazie

  4. #4
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Non funziona perchè dopo aver aperto il file, esegui il ciclo e dopo non lo chiudi più. In questo modo la procedura riapre il file che viene trovato già aperto e quindi ti da l'errore.

    In pratica devi modificare la chiusura del ciclo e del file:

    codice:
    Case is = 1
      NomeFile = "c:\2.txt"
      Open NomeFile For Input As #1
        While Not EOF(1)
          Input #1, nomefile
          List2.AddItem (nomefile)
        Wend
      Close #1
    Quindi:

    codice:
    Private Sub List1_Click()
    Dim NomeFile As String
    
    Label1.Caption = List1.ListIndex
    List2.Clear
    Select Case List1.ListIndex
    Case Is = 0
      NomeFile = "c:\1.txt"
      Open NomeFile For Input As #1
        While Not EOF(1)
          Input #1, NomeFile
          List2.AddItem (NomeFile)
        Wend
      Close #1
    Case Is = 1
      NomeFile = "c:\2.txt"
      Open NomeFile For Input As #1
        While Not EOF(1)
          Input #1, NomeFile
          List2.AddItem (NomeFile)
        Wend
      Close #1
    Case Is = 2
      NomeFile = "c:\3.txt"
      Open NomeFile For Input As #1
        While Not EOF(1)
          Input #1, NomeFile
          List2.AddItem (NomeFile)
        Wend
      Close #1
    Case Is = 3
      NomeFile = "c:\4.txt"
      Open NomeFile For Input As #1
        While Not EOF(1)
          Input #1, NomeFile
          List2.AddItem (NomeFile)
        Wend
      Close #1
    End Select
    End Sub

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 © 2020 vBulletin Solutions, Inc. All rights reserved.