Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Satunnainen rivi tiedostosta?

CoBolt [28.03.2004 14:37:08]

#

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

hunajavohveli [28.03.2004 15:43:59]

#

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.

CoBolt [28.03.2004 15:50:06]

#

joop. Onko mitään esimerkinpoikasta? En ole meinaan *vielä* ihan pro.

hunajavohveli [28.03.2004 15:53:22]

#

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. :)

CoBolt [28.03.2004 16:00:19]

#

Loistavaa. Annas kun kokeilen.

setä [28.03.2004 16:13:53]

#

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

hunajavohveli [28.03.2004 16:16:41]

#

Tuo sedän vinkki käyttää periaatteessa viimeksi mainitsemaani tapaa, ja tuo pistämäni koodi on tehty ensiksi mainitsemallani tavalla.

Vastaus

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

Tietoa sivustosta