Hakee tietyn rivin tiedostosta. Se... noh, siinähän se kuvaus oli :P sorsa on niin hyvin kommentoitua että pitäisi olla selvää :P
editoitu 20. kesäkuuta (FreeFile juttu lisätty)
Function HaeRivi(rivi, filu) On Error Resume Next 'jos tiedostoa ei ole FiluNro = FreeFile 'seuraava vapaa filu avattavaksi Open filu For Input As #FiluNro 'avataan tiedosto If Err = 53 Then Exit Function 'jos tiedostoa ei ole niin poistutaan Do Until EOF(1) 'luupataan tiedoston loppuun asti r = r + 1 'lisätään rivicountteria yhdellä Line Input #FiluNro, teksti 'haetaan yksi rivi tiedostosta If r = rivi Then 'jos ollaan sillä rivillä mikä pitää hakea... HaeRivi = teksti 'niin kerrotaan oikea rivi Close 'ja suletaan tiedosto Exit Function 'ja poistutaan End If Loop 'seuraava rivi... Close #FiluNro 'sule tiedosto. jos tässä kohtaa ollaan niin haettava rivinumero on niin iso ettei sitä ole tiedostossa, koska exit sub tuolla toteutuu jos löytyy... End Function
Näyttää kivalta... Kokeilen varmaan lähiaikoina, mutta mixen heti? :D
Joo ihan kätevä ku on myös toi tiedoston lopun tarkistus juttu.
ja sama on Do While Not EOF(1)
Hmm.. ehkä hieman kyseenalaista käyttää Closea ilman parametria tuossa. Taitaa vielä VB:ssäkin Close ilman parametreja sulkea kaikki avoimet tiedostot.
Tollasta oonki aina tarvinnu! Jesh..
Joo, kyllä se parametritön Close sulkee kaikki tiedostot. Itse olen aina käyttänyt parametrin kanssa, vaikka olisinkin käsitellyt vain yhtä tiedostoa.
Njooh, lisäsin siihen ton #FiluNro-FreeFile jutun nyt niin ei tule ristiriitoja.
tuo on muuten turha tuo
If Err = 53 Then Exit Function 'jos tiedostoa ei ole niin poistutaan
kun alusta löytyy jo On Error Resume Next
Niinnojoo... toi on vaan selkeempää noin :) (ja ilman onerroria toikaan ei toimisi :D)
Mitenkäs toimii toiseen suuntaan? Eli et kirjottaa tiettyyn kohtaan?
Näin, professori.
ton funktion vois kyl tehä myös näin:
Function HaeRivi(rivi, filu) Dim teksti As Variant On Error Resume Next 'jos tiedostoa ei ole FiluNro = FreeFile 'seuraava vapaa filu avattavaksi Open filu For Input As #FiluNro 'avataan tiedosto If Err = 53 Then Exit Function 'jos tiedostoa ei ole niin poistutaan Input #FiluNro, teksti teksti = Split (teksti, vbCrLf) HaeRivi = teksti(rivi - 1) Close #FiluNro 'ja suletaan tiedosto End Function
ewww, nythän tuo haerivi on varianttina. voisko olla
Function HaeRivi(rivi, filu) As String
hahhah, king, kahtoppa, ei tiiä vastaavatko, onhan noista muista kommenteista pari vuotta aikaa =)
Aihe on jo aika vanha, joten et voi enää vastata siihen.