Kun tallennetaan tiedostoon useampia asioita, esim. asetuksia tai muita, ja näin ollen tiedostoon muodostuu useampia rivi, mitenkä niiden rivejen lukeminen hoituu? Esim. tiedostolla voisi olla tälläinen sisältö:
Data1
Data2
Data3
Jne..
Eli kun tiedosto luetaan, ja se on muistissa, halutaan vaikka printata tuo "Data3" näytölle, mitenkä homma hoituu? Minä kun en tiedä pahemmin, vaikka uskon että siinä pitää käyttää taulukoita. Ainakin siinä olen oikeassa, olenko? Niin ja kieli on sitten QB.
-Grey-
no se onnistuis vaikka tälläin:
mut en suosittele
OPEN "tiedosto" FOR INPUT AS #1 loppu = 3 # mikä rivi tulostetaan FOR rivi = 1 TO loppu INPUT #1, sana$ NEXT PRINT sana$ CLOSE #1
Taulukkoon nuo kannattaa laittaa, jos asetuksien määrä pysyy kymmenissä. Käydään tiedosto rivi kerrallaan läpi ja laitetaan kukin rivi taulukkoon, kasvavan indeksin mukaisesti. Eli jotenkin näin:
OPEN "tiedosto.txt" FOR INPUT AS #1 DIM tiedot(100) AS STRING 'rivitaulukko i%=1 'aloitusindeksi DO UNTIL EOF(1) INPUT #1, tiedot(i%) i%=i%+1 LOOP CLOSE #1 PRINT tiedot(3) 'tulostaa kolmannen rivin
Karkea koodi, mutta selkeästi toimiva. Luulen että saan tuosta toimivan, kunhan lisään siihen taulukon ja virheenkäsittelijän. Onnistuu kyllä minulta. Pitäisi ainakin onnistua. Joskin otan kyllä vastaan tuotakin parempia vinkkejä. Jos löytyy.
-Grey-
Jos asetuksia tallentelet niin järkevintä on vääntää niille type ja tallentaa binäärimuodossa.. eli jotakuinkin näin:
TYPE tAsetukset tekstinvari AS INTEGER taustanvari AS INTEGER nimi AS STRING * 50 END TYPE DIM asetukset as tAsetukset 'tallennus-> asetukset.tekstinvari = 10 asetukset.taustanvari = 33 asetukset.nimi = "jejeje" OPEN "foo.bar" for binary as #1 put #1,,asetukset close #1 'lataus OPEN "foo.bar" for binary as #1 get #1,,asetukset close #1
Se koodinpätkä, minkä sain aikaan tässä, toimii sellaisenaan minun tarkoituksessa hyvin. Vain siinä herää minulle kysymys, että jos tiedostossa on useammanlaista dataa. Eli tekstiä ja numeroita tähän tyyliin.
Data1 64 Data2
Eli osa tiedostonsisällöstä onkin lukuarvoja. Ymmärrätte varmaa? Ongelma niiden kanssa kyllä ratkeaa, jos teksti on toisessa ja nuo numerot toisessa tiedostossa. Kuten esim. pelien tallennukset. Vaikkakin eilen keksimässäni projektissani, joka on toistaiseksi salainen, pitäisi saada tuo kaikki arvot mieluummin yhteen tiedostoon. Siis vain mieluummin, vaikka se ei olekaan välttämätöntä.
-Grey-
Siinä tapauksessa teet kuten neuvoin:
TYPE tAsetukset tekstidata1 as string * 30 jokuluku AS INTEGER tekstidata2 as string * 30 END TYPE DIM asetukset as tAsetukset 'tallennus-> asetukset.tekstidata1 = "jeje" asetukset.jokuluku = 1234 asetukset.tekstidata2 = "w00t" OPEN "foo.bar" for binary as #1 put #1,,asetukset close #1 'lataus OPEN "foo.bar" for binary as #1 get #1,,asetukset close #1
Binäärimuoto omistaa, nääs.
Aihe on jo aika vanha, joten et voi enää vastata siihen.