Olen taas innostunut ohjelmoimaan erästä ikuisuusprojektiani eli käyttöjärjestelmää Qbasicilla... tarkoitus ei ole tehdä tätä tosissaan vaan ihan pelkkänä hupina ja naurunkohteena ;)
Mutta.
Nyt haluaisin tehdä mahdollisuuden eri kieliversioihin. Olen toteuttanut sen näin:
Alussa on: DECLARE FUNCTION kieli! () ------------ funktio kieli sisältää seuraavaa: FUNCTION kieli 00000001$ = " Katso HELP kohdasta, jos et osaa käyttää!" 00000002$ = "DirectOS on MS-DOS:in symbioosi käyttöjärjestelmä, se tukee kaikkia DOS" ... ------------- Funkitota kutsutaan seuraavasti: PRINT 00000001$
Tämä ei tietenkään toimi. Miten te, löytyykö joltakin ehdotuksia tehdä juttu toimivammin ja paremmin?
Muuttujan nimi ei saa alkaa numerolla, siksi tuo ei toimi. Itse toteuttaisin tuon siten että kaikki viestit ovat tiedostossa, kukin merkkijono omalla rivillään. Sitten kun tulostustarve ilmenee, tulostata vastaavn rivin tiedostosta.
no mites tuo rivi määritellään?
Laitetaanko esimerkiksi .dat -tiedostoon joka rivin eteen jokin numero ja siten
...vai?
edit:
Tarviin tuosta vähän enemmän tietoa.
Yritin kerran, mutta koska ohjekirjat joita mulla on, eivät kerro tuosta tietyn rivin ottamisesta mitään, niin oli vähän mahdotonta.
Sinun tarvitsee vain tietää, missä järjestyksessä rivit tiedostossa ovat, periaatteessa. Rivinumerot voi vaikka laittaa vakioiksi (Const). Ja tuohon rivin lukuun on koodivinkkikin (Visual basic, mutta kääntyy näppärästi QB:lle):
https://www.ohjelmointiputka.net/koodivinkit/
eikös voisi tehdä proseduurilla?
höh.. ton lauseen voi laittaa taulukkoon esim.
dim kieli$(x,y) 'x = kielen numero ja y on lause joka halutaan tulostaa.
eiks se suunnilleen vois mennä noin?
Menisihän se, mutta se syö melkoisesti muistia silloin.
Itselläni on tälläinen, tosin se on käytössä eräässä visual basic projektissani, joten en ole varma, että toimiiko se quickbasicissa...
dim lang(1000) as string s = 0 open "kieli.pak" for input as #1 do line input #1, txt$ lang(s) = txt$ s = s + 1 loop until eof(1) close #1 print lang(0) 'Katso help-kohdasta jos et osaa käyttää print lang(1) 'DirectOS on MS-DOS:in symbioosi käyttöjärjestelmä, se tukee kaikkia DOS
Aihe on jo aika vanha, joten et voi enää vastata siihen.