Että piti kysymän, että miten saan tulostettua vaikka textboxiin satunnaisen rivin tiedostosta, jonka yhteisrivimäärää en tiedä? Sain sydeemin kyllä toimimaan niin, että se tulostaa cmdbuttonia painaessa ekalla kerralla ekan tokalla tokan jne. mutten sen kehittyneemmin...
Lataat kaikki rivit taulukkoon ja sitten niistä arvot satunnaisesti yhden rivin, tai sitten luet kerran tiedoston läpi, niin että saat selville rivimäärän, sitten arvot jonkun luvun tuon rivimäärän väliltä ja luet rivejä uudestaan kunnes tulet arvotun rivin kohdalle ja lataat sen.
joop. Onko mitään esimerkinpoikasta? En ole meinaan *vielä* ihan pro.
Dim taulukko(1 To 1000) As String Private Sub Command1_Click() Open "Tiedosto.txt" For Input As #1 While Not EOF(1) r = r + 1 Input #1, taulukko(r) Wend Close #1 Text1.Text = taulukko(Int(Rnd * r) + 1) End Sub
Tuosta ihan kylmiltään testaamatta tein tuollaisen. Saattaa jopa toimia. :)
Edit: Jaahas, Antti taisi korjata sen bugin, kun kaikki on taas kunnossa. :)
Loistavaa. Annas kun kokeilen.
Tämmönen esim.
Open "Tiedosto.txt" For Input As 1 rivit = Input(LOF(1), 1) 'luetaan koko roska muuttujaan rivit Close 1 I = 1: N = 1 Do 'tsekataan rivien määrä I = InStr(I, rivit, vbCrLf) If I = 0 Then Exit Loop N = N + 1: I = I + 2 Loop 'Nyt N = rivien määrä 'luetaan satunnainen rivi Open "Tiedosto.txt" For Input As 1 For I = 0 to Int(N*rnd) Line Input #1, rivit Next Close Text1 = rivit
Tuo sedän vinkki käyttää periaatteessa viimeksi mainitsemaani tapaa, ja tuo pistämäni koodi on tehty ensiksi mainitsemallani tavalla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.