Nyt on tullut "seinä" vastaan ja pitäisi saada tekstitiedostosta satunnainen rivi.
Open App.Path & "\teksti.txt" For Input As #1
Input #1, k
Close #1Tällä tavalla saan aina ensimmäisen rivin, mutta tarkoitus olisi siis saada satunnainen rivi.
Kiitokset vastauksista.
Ensin sinun pitää tietää, kuinka monta riviä tiedostossa on kaikkiaan. Jos rivimäärä on valmiiksi tiedossa, voit vain arpoa jonkin riveistä ja lukea rivejä siihen riviin asti. Jos rivimäärä ei ole tiedossa, tiedosto täytyy ensin lukea kokonaan läpi rivien määrän laskemiseksi. Sen jälkeen voit toimia, kuten helpommassa tapauksessa. Toinen tapa on panna rivit muistiin (taulukkoon) jo ensimmäisellä lukukerralla, jolloin tiedostoa ei tarvitse lukea kahteen kertaan.
No niin. Sain sentään jotain aikaa ja melkein toimivaakin :)
Dim Taulukko() As String
Dim rivit As Long
Dim k As String
Open App.Path & "\teksti.txt" For Input As #1
Do Until EOF(1)
DoEvents
rivit = rivit + 1
Line Input #1, k
ReDim Taulukko(rivit) As String
Taulukko(rivit) = k
Loop
Close #1Mistä johtuu, että kutsuessani jotainkin taulukon alkiota esim. Taulukko(4), alkio on tyhjä, vaikka tiedostossa on ainakin 53 riviä?
ReDim-komento jyrää alleen taulukon alkuperäisen sisällön, mutta jos käytät Preserve-avainsanaa, näin ei tapahdu.
ReDim Preserve Taulukko(rivit) As String
Minusta kyllä taulukon kasvattaminen rivi riviltä tuntuu vähän vaivalloiselta. Voisit määritellä taulukon heti alkuun vähän suuremmaksi ja kasvattaa sen kokoa myös suuremmissa erissä. Tosin kyllähän ohjelma noinkin toimii. :)
Aah toimii. Oli tällä kertaa yhdestä sanasta kiinni :)
Kiitos avusta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.