Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: VB listbox

Sivun loppuun

Shogun [01.07.2003 12:29:27]

#

Miten mä saan tehtyä et nappia painamalla kone käy list2:den läpi ja poistaa list1:stä kaikki ne samat sanat mitä listakakkosessa löytyy. miten tää homma ylipäätänsä toimii? Siel on se removeitem ´mut miten se toimii???

Teme [01.07.2003 12:56:55]

#

Käyt molemmat listboxit läpi ristiin ja vertaat niitä, vaikka näin jos tämä lauseke olisi FOR-lausekkeen sisällä:

If List1.List(i) = List2.List(i) Then List1.RemoveItem i

Elikkäs se RemoveItem tarttee yhden parametrin, ja sekin tarkoittaa sitä että mikä rivi poistetaan.

Jos haluat poistaa listboxista ekana olevan rivin, se menee näin:

List1.RemoveItem 0

Ekan rivin indeksinumero on nolla, toisen rivin numero on 1, kolmannen rivin numero on 2 jne...

Antti Laaksonen [01.07.2003 16:51:04]

#

RemoveItem poistaa rivin, List on rivin arvo ja ListCount on rivien määrä. Yksi tapa on käydä lista 1 läpi ja verrata kutakin riviä jokaiseen lista 2:n riviin. Voi kylläkin olla hidasta, jos rivejä on paljon. Ensimmäisen For-silmukan täytyy kulkea lopusta alkuun, koska listan rivien indeksit menisivät muuten sekaisin poistojen jälkeen.

Private Sub Command1_Click()
    Dim i As Integer, j As Integer
    For i = List1.ListCount - 1 To 0 Step -1
        For j = 0 To List2.ListCount - 1
            If List1.List(i) = List2.List(j) Then
                List1.RemoveItem i
            End If
        Next
    Next
End Sub

Private Sub Form_Load()
    List1.AddItem "Audi"
    List1.AddItem "Datsun"
    List1.AddItem "Mazda"
    List1.AddItem "Saab"
    List1.AddItem "Volkswagen"
    List2.AddItem "Audi"
    List2.AddItem "Mazda"
End Sub

Shogun [03.07.2003 15:15:35]

#

Toimii niinku pitääkin mut ängetään tähän vielä toinen asia.
Et kuinka saan tallennettua listin tiedot johonkin hakemistoon ja sit ladattua sen....

Antti Laaksonen [03.07.2003 16:17:21]

#

Tarkoitat varmaan hakemistolla tiedostoa. Tässä on pari aliohjelmaa listan tallentamiseen ja lataamiseen tekstitiedostoon.

'lataa listan tiedostosta
Sub LataaLista(lista As ListBox, tiedosto As String)
    Dim i As Integer, maara As String, rivi As String
    lista.Clear
    Open tiedosto For Input As #1
    Line Input #1, maara
    For i = 0 To Val(maara) - 1
        Line Input #1, rivi
        lista.AddItem rivi
    Next
    Close #1
End Sub

'tallentaa listan tiedostoon
Sub TallennaLista(lista As ListBox, tiedosto As String)
    Dim i As Integer
    Open tiedosto For Output As #1
    Print #1, lista.ListCount
    For i = 0 To lista.ListCount - 1
        Print #1, lista.List(i)
    Next
    Close #1
End Sub

Private Sub Form_Load()
    List1.AddItem "Audi"
    List1.AddItem "Datsun"
    List1.AddItem "Mazda"
    List1.AddItem "Saab"
    List1.AddItem "Volkswagen"

    TallennaLista List1, "c:\lista.dat"
    LataaLista List1, "c:\lista.dat"
End Sub

Lisätietoa tiedostonkäsittelystä:

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=vbo_8
https://www.ohjelmointiputka.net/hak/?kieli­=Visual Basic&alue=Tiedostot

Shogun [04.07.2003 11:08:52]

#

Mahtavaa kiitos.

Me kaikki ollaan joskus aloitettu ohjelmasta nimeltä "Hello World" ja välillä vaikuttaa siltä etten ole päässyt Lucky Seveniä pitemmälle:)

kaviaari [04.07.2003 11:18:01]

#

Mikä ihme on Onnekas seiska joku pelikö?

TK [04.07.2003 15:11:11]

#

Se on esimerkki, joka löytyy noista pirun visual basic kirjoista.Ainakin varmaan kaikista Halvorsonin opuksista.

kaviaari [24.07.2003 16:29:20]

#

Ahaa


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta