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???
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...
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 SubToimii niinku pitääkin mut ängetään tähän vielä toinen asia.
Et kuinka saan tallennettua listin tiedot johonkin hakemistoon ja sit ladattua sen....
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 SubLisätietoa tiedostonkäsittelystä:
https://www.ohjelmointiputka.net/oppaat/opas.
https://www.ohjelmointiputka.net/hak/?kieli=Visual Basic&alue=Tiedostot
Mahtavaa kiitos.
Me kaikki ollaan joskus aloitettu ohjelmasta nimeltä "Hello World" ja välillä vaikuttaa siltä etten ole päässyt Lucky Seveniä pitemmälle:)
Mikä ihme on Onnekas seiska joku pelikö?
Se on esimerkki, joka löytyy noista pirun visual basic kirjoista.Ainakin varmaan kaikista Halvorsonin opuksista.
Ahaa
Aihe on jo aika vanha, joten et voi enää vastata siihen.