Kuinka qb:ssa pystyy tallentamaan tietylle riville tiedostossa?
Täytyykö se koko tiedoston sisältö lukea muistiin ja tallentaa sitten koko roska? Kuulostaa vaan niin työläältä...
Valmistu sekavaan sel(v)itykseen:
Pitää varmaan käyttää LOCATEea siis niinku LOCATE 10, 1 Laittaa tekstin kymmenennelle riville mutta en tiedä mitä tiedoston lopulle riville tapahtuu. Pitäis varmaan laittaa joku mistä alkaa lukemaan tiedostoa ja mihin lopettaa tyyliin varmaan GET ja PUT.
(kirjotin tämän jaksamatta ottaa selvää asioista joten voi olla puhuin paskaakin) :|
Ei se kyllä ihan LOCATElla onnistu. :) Rivinvaihtojen kanssa on vähän hankalaa, kun niiden sijaintia ei voi tietää koko tiedostoa lukematta. Lue siis alkuperäisestä tiedostosta rivejä ja tallenna ne toiseen tiedostoon. Kun rivejä on luettu oikea määrä, sujauta väliin se uusi rivi (tai korvaa luettu rivi toisella). Sitten vielä lue ja kirjoita loput rivit.
Jaa... No ei voi mitää. Täytyy siis tehdä vaikeamman kautta. Kiitti kumminki.
Itse olen suurien tiedostojen väliin kirjoittamisen hoitanut näin.
'kirjoittaa 100 riviä A kirjaimia
OPEN "O",#1,"testi.txt"
FOR n=1 TO 100
print #1, "A"
NEXT n
CLOSE #1
'Sitten avaa tiedosto hajasaantitiedostona
x=50 , X on miltä riviltä tieto luetaan ja kirjoitetaan
OPEN "R",#1,"testi.txt",3 ' 3 on tietueen pituus+2
GET #1,x
INPUT #1, vanhakirjain$
print vanhakirjain$
uuskirjain$="B"
PUT #1,X,uuskirjain$
tietuepituudet täytyy olla samanpituisia jos ei niistä täytyy tehdä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.