Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Kääntäjä ei erota riviä subista (QB)

Sivun loppuun

hunajavohveli [26.05.2004 18:56:31]

#

Minulla on kaksi parametritöntä aliohjelmaa, joiden nimet ovat HR ja HT. Haluan suorittaa molemmat peräkkäin, ja lisäksi haluan ne samalle riville, joten erottelen ne kaksoispisteillä:

HR: HT: PRINT "Terve"
HR: HT: PRINT "Testaus"

Mutta tässä tulee sellainen ongelma, että kääntäjä luulee kahta HR-kutsua riveiksi ja alkaa herjata "Duplicate label", vaikkei se tajua, että yritän vain kutsua määrittelemääni aliohjelmaa. Minkä ihmeen takia se ei valita siitä, että yleensä on samanniminen rivi ja aliohjelma? Onko mitään keinoa saada nuo samalle riville, vai olenko juuri löytänyt QBasicista heikkouden, joka lähes tuomitsee yhden projektini? Homma on nimittäin niin, että joko ne ovat samalla rivillä, tai sitten en tee niitä ollenkaan.

rndprogy [26.05.2004 18:59:21]

#

Entä jatkatko projectiasi jos pitää SUBien nimien perään kirjoittaa CALL.

sooda [26.05.2004 19:00:57]

#

Näin se ei luule niitä rivilaabeleiksi:

:HR: HT: PRINT "Terve"
:HR: HT: PRINT "Testaus"

hunajavohveli [26.05.2004 19:01:00]

#

lainaus:

entä jatkatko projectiasi jos pitää SUBien nimien perään kirjoittaa CALL.

En. Ideana oli nimenomaan se, että CALL:ia ei tarvitsisi kirjoittaa, vaan pelkkä aliohjelman nimi, niin kuin se yleensä on riittänytkin. Tai oikeastaan koko projekti ei kaadu, mutta joudun tekemään tämän kohdan paljon vaikeammalla tavalla.

Edit: Tuota soodan keinoa voisin harkita, vaikka sekin osittain tuottaa ongelmia.

Antti Laaksonen [26.05.2004 22:26:57]

#

Hankala juttu tosiaan. En usko, että soodan kertomaa parempaa ratkaisua on olemassa, siinä sentään täytyy lisätä vain yksi merkki rivin alkuun. Minkälaista ohjelmaa olet muuten tekemässä?

JoreSoft [27.05.2004 08:47:58]

#

Käyttäkää pitempiä, ja kuvaavampia aliohjelma nimiä. Ohjelma samalla kommentoi itseään, ja on helpompi itselle.
Suoritettava ohjelma ei hidastu siitä, miten pitkä muuttujan tai funktion nimi on. :)
(olen joskus huomannut ton tarpeellisuuden, kun avasin pari vuotta vanhaa projektia.. )

HerneR
HerneT
PRINT "Terve"
HerneR
HerneT
PRINT "Testaus"

hunajavohveli [27.05.2004 14:16:13]

#

Antti Laaksonen kirjoitti:

Minkälaista ohjelmaa olet muuten tekemässä?

Oikeastaan vain yhtä HoneyLibin kohtaa, mutta keksinkin juuri paljon paremman keinon, joten en tarvitsekaan tuota toista keinoa. HR:ää ja HT:tä oli tarkoitus käyttää rivinvaihtoon yms., joten niistä olisi siksi ollut kätevä tehdä noin lyhyitä ja helppokäyttöisiä, mutta korvaan ne samalla tyylillä kuin C++:n cout-käskyssä.

Antti Laaksonen [27.05.2004 18:24:59]

#

Joo, jos käytät PRINT-komentoa, niin rivinvaihdot kannattaa toki tehdä tähän tapaan:

PRINT "Rivi 1"; rv; "Rivi 2"; rv; "Rivi 3"

Rivinvaihdon voi määritellä joko muuttujana tai funktiona:

DIM rv AS STRING
rv = CHR$(13)

FUNCTION rv$
    rv$ = CHR$(13)
END FUNCTION

Sivun alkuun

Vastaus

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

Tietoa sivustosta