Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Tiedostojen lukemisesta...

Grey [22.11.2002 22:30:27]

#

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-

snakari [22.11.2002 23:27:36]

#

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

Antti Laaksonen [22.11.2002 23:38:14]

#

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

Grey [23.11.2002 00:18:13]

#

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-

thefox [23.11.2002 14:51:18]

#

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

Grey [23.11.2002 18:50:14]

#

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-

thefox [24.11.2002 19:38:08]

#

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.

Vastaus

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

Tietoa sivustosta