Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB ja tiedostosta luku

Sivun loppuun

Turambar [19.01.2003 13:33:10]

#

Täällä oli joskus opas Qb:n tiedostojen käsittelystä, mutta en sitä nyt löytänyt.

Tarvitsisin seuraavanlaista apua:
Miten tiedostosta voi lukea Qb:n komentoja esim.

---teksti.txt
FOR i=1 TO 100
PRINT i
NEXT

Ja sitten ohjelma lukisi rivit tiedostosta ja suorittaisi ne. Vai onko tämä edes mahdollista?

KimmoKM [19.01.2003 15:07:23]

#

QBn komentojen suorittaminen on vaikeaa, ei silti AIVAN mahdotonta. Rivien luku onnistuu näin:

OPEN "tiedosto" FOR INPUT AS #1 'Avataan tiedosto
DO
  INPUT #1,rivi$ 'luetaan tiedostosta
  'Tässä kohtaa toteutetaan komento
LOOP WHILE EOF(1) 'Lopetetaan tiedoston lukeminen, kun tiedosto loppuu

Antti Laaksonen [19.01.2003 15:38:12]

#

Jos ajat ohjelman QB:n editorissa, voit suorittaa BASIC-kooditiedoston komennolla CHAIN. Käännetyssä ohjelmassa koodin suorittaminen ei onnistune millään ilveellä.

Turambar [19.01.2003 15:52:27]

#

Testasin ja huomasin että chain ei toimi käännetyssä ohjelmassa, kuten Antti sanoi. Kimmon koodi printtasi vain tiedoston ensimmäisen rivin, vaikka tiedostossa oli monta riviä, missä vika?

Tarkoitukseni olisi saada tiedostosta luettua dataan tietoa ja olisi kiva jos saisi tiedostosta luettua looppeja ja if-lauseita. Teen peliä ja uhkaa kilotavuraja tulla vastaan ja valtaosan koodista vie tälläiset if-lauseet:

IF x=50 AND y=20 AND muuttuja=1 THEN PRINT "Löysit avaimen!"

Mistä ratkaisu?

progo [19.01.2003 16:14:49]

#

Tuommoisella tekniikalla tuntuu tulevan muutenkin isoi pelei aikasiksi.. Paras olisi, että kaikki on tiedostoissa, joista kopioidaan data taulukoihin josta voidaan yhdessä silmukassa tutkia melkein kaikki..

Antti Laaksonen [19.01.2003 17:06:08]

#

Jos ongelmana on se, että pelin lähdekoodi on liian suuri käännettäväksi, voit yrittää jakaa ohjelman osiin:

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=okt_qb

Mutta tässä tapauksessa pelin toteutustapa kannattaisi miettiä uudestaan. Tallenna kaikki avainten ynnä muiden tavaroiden paikat tiedostoon, lataa ne sieltä taulukkoon ja tarkista kohdat silmukassa, niin tarvitset ainoastaan yhden tuollaisen IF-lauseen.

Turambar [24.01.2003 16:28:50]

#

Kokeilin seuraavaa:

OPEN "teksti.txt" FOR INPUT AS #1
INPUT #1, rivi$
DATA rivi$
CLOSE #1

Kun tulostan datan, ruudulla lukee rivi$. Miten sen saisi toimimaan? Jos joku viitsii, niin pistää kunnon esimerkin tuosta Antin ehdotuksesta.

snakari [24.01.2003 18:24:25]

#

Se ei taida onnistua, mutta ei dataan mun mielestä tommosta kannata laittaa, vaan vaikka muuttujiin tai taulukoihin


Sivun alkuun

Vastaus

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

Tietoa sivustosta