Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Tiedoston sisältö comboboxiin

Tehy [22.12.2004 14:45:59]

#

Eli miten onnistuu tekstintiedoston tekstien saaminen comboboxiin? osaan kyllä lukea yhen rivin, mutta pitäs saada kaikki tekstit comboboxiin...

Antti Laaksonen [22.12.2004 14:48:49]

#

Lue tiedostosta rivejä, kunnes Eof-funktio ilmoittaa tiedoston loppumisesta. Koodi menee suunnilleen näin:

Dim rivi As String

Open "oma.txt" For Input As #1
While Not Eof(1)
    Line Input #1, rivi
    Combo1.AddItem rivi
Wend
Close #1

Tehy [22.12.2004 14:56:51]

#

kiitoksia, toimii!

Nocando [28.12.2004 09:23:05]

#

Mutta miten poistetaan combosta tietoa, entä kuinka tarkistaa onko tieto jo listattuna?

BadSource [28.12.2004 10:11:32]

#

1) ComboBox sisältää metodin RemoveItem, jolle annat suluissa minkä tiedon haluat poistaa. Clear taas poistaa kaikki tiedot.

Combo1.RemoveItem(0) 'poistaa ensimmäisen tiedon
Combo1.Clear 'poistaa loputkin tiedot

2) Esimerkiksi For-silmukalla

Dim rivi As String
Dim i As Integer
Dim OnJo As Boolean

Open "oma.txt" For Input As #1
While Not Eof(1)
    Line Input #1, rivi
    OnJo = False
    For i = 0 To Combo1.ListCount - 1
        If Combo1.List(i) = rivi Then OnJo = True
    Next i
    If Not OnJo Then Combo1.AddItem rivi
Wend
Close #1

Toinen mieleen tullut tapa on käyttää String-tyyppistä apumuuttujaa, jos taulu on tyhjä tai se ensin tyhjätään, ennen kuin sinne viedään tietoja txt-filestä.

Dim rivi As String
Dim OnJo As String

Open "oma.txt" For Input As #1
Combo1.Clear
While Not Eof(1)
    Line Input #1, rivi
    OnJo = OnJo & "|" & rivi & "|"
    'käytetään vbTextCompare:a, niin vertailu ei erottele isoja ja pieniä kirjaimia
    'jos kirjain koolla on jotain väliä, niin tuon voi ottaa pois tai vaihtaa vbBinaryCompare:ksi
    If InStr(1, OnJo, "|" & rivi & "|", vbTextCompare) <> 0 Then Combo1.AddItem rivi
Wend
Close #1

Vastaus

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

Tietoa sivustosta