Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Tiettyyn riviin dataa filuun

sooda [27.08.2004 08:06:12]

#

Eli heittää filuun riville n tietoa.
Useimmat olisivat varmaan tehny tän hakemalla eka rivit line inputilla yksitellen, mutta veikkaan että tämä on paljon nopeampi. Varmaan on vieläki optimoimisen varaa mutta tämä toimii kivasti.

Jos rivi on vähemmän kuin yksi niin tieto heitetään ihan kaikkia muita rivejä ennen, ekaksi, pyyhkimättä mitään. Jos rivi on enemmän kuin mitä filussa on, niin tieto tungetaan viimeiseksi kaikkien muiden jälkeen.

Sub TungeRivi(tieto, rivi, filu)

    FiluNro = FreeFile 'ekan avoimen filun nro
    Open filu For Input As #FiluNro
    sisältö = Input(LOF(1), 1) 'koko filun sisältö
    Close #FiluNro
    Open filu For Output As #FiluNro 'ja sitte tungettavaks tiedot sinne
    entteri = InStr(sisältö, vbCrLf) 'missä kohtaa eka rivinvaihto
    If rivi < 1 Then Print #1, tieto 'kätevä ominaisuus
    While entteri 'loopataan niin kauan kunnes filusta löytyy rivinvaihtoa
        rivit = rivit + 1
        rivisisältö = Left(sisältö, entteri - 1) 'eka rivi sisällöstä ilman rivinvaihtoa
        sisältö = Mid(sisältö, entteri + 2) 'rivinvaihdon jälkeinen sisältö, +2 siksi että vbcrlf vie kaksi merkkiä
        If rivit = rivi Then 'jos on se rivi meneillään millon pitää tunkea oma tieto sinne
            Print #1, tieto
            Meni = True
        Else 'muuten heitetään alkuperäinen sisältö
            Print #1, rivisisältö
        End If
        entteri = InStr(sisältö, vbCrLf) 'ja seuraava rivinvaihto...
    Wend
    If sisältö <> "" Then Print #1, sisältö 'ja vielä viimeiset tiedot sinne jos vaikka vikan rivin lopussa ei ookaan entteriä
    If Not Meni And rivi > 0 Then Print #1, tieto 'jos rivi on enemmän kuin mitä filussa on niitä niin heitetään tieto loppuun
    Close #FiluNro

End Sub

Zapi [29.08.2004 11:54:14]

#

iha kiva

Vastaus

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

Tietoa sivustosta