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 Sub
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....
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.
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.