Tuli (taas) pieniä onkelmia Qbasicin kanssa. Yritän tehdä ärsyttävälle koulukaverille jäynää pienen ohjelman muodossa. Kääntäjä kuitenkin herjaa: "Duplicate defention." En sitten päässyt siitä eteenpäin. Mitä pitäis tehdä?
Virhe varmaankin on "Duplicate definition"... Eli se tarkoittaa, että määrittelet saman muuttujan DIM-lauseella kahdesti tai useamman kerran.
EDIT - kerrohan, missä kohtaa QB valittaa? DIM-lauseessa, vai DECLARE:ssa? Itselläni tulee tuo aina silloin tällöin, jos DECLARE-määrittely ja aliohjelman parametrit poikkeavat toisistaan esim. seuraavasti:
DECLARE SUB numero!(a AS INTEGER) ... SUB numero! (a AS INTEGER, b AS INTEGER) <-- määrittely eroaa; tulkki luulee että määritellään samaa subbia uudelleen :) ... ...
Tuokin aiheuttaa Duplicaten.
Tuohan voi tulla monessakin tapauksessa. Kerro nyt edes missä kohtaa - vilauta vähän sitä koodia. Olet määrittänyt yhden muuttujan useampaan kertaan.
Edit: Häsh taas meni vastauksen päällekkäin
Niin tai sitten vaikka kaksi saman nimistä riviä, tai aliohjelmaa. Tuo ei tosiaan ilman koodia selviä.
No tässä tulee pieni pätkä...
...
maxvair = 30
DIM vx(maxvair)
DIM vy(maxvair)
vx = 10
vy = 15
...
Vastaus selvisikin jo. Määrittelyssä ei ollutkaan mitään häikkää, vaan itse koodissa. Olen tehnyt suurin piirtein samoja virheitä ennenkin.
Joo, et voi antaa samaa nimeä taulukolle ja muuttujalle. Jos tarkoitus on tallentaa 10 ja 15 taulukoihin, tee se näin:
vx(1) = 10 vy(1) = 15
Katsos jos tallentat taulukkoon, on tietysti annettava myös alkion numero, johon tallennetaan.
Kyllä se toimi kuten pitää, mutta exeä se ei tahdo tehdä. Mikähän vika siinä on? Otan sieltä jostakin make exe file -hommelin, niin kone kuuluu työstävän jotain, mutta exeä ei vain näy. Miksiköhän?
Ei kun hetkinen... kyllähän QB:ssä voi antaa saman nimen taulukolle ja muuttujalle, mutta oliko tuossa koodissasi tarkoitus tallentaa luvut 10 ja 15 edellä määriteltyihin taulukoihin vai saman nimisiin muuttujiin?
Samannimiset muuttujat... Mutta kuten jo mainitsin, koodi toimii kuten pitääkin. Exeksi muuttamisessa vain on jotain häikkää.
Onko kyseessä 4.5 vai QBX? (7.1)
7.1. Miten niin? Voin varmaan yrittää samaa nelipuolosellakin.
Ei nelipuolosellakaan exejä tule. Harmi. En sitten saakaan lähetettyä "virusta" eli ohjelmaa, mikä ei sulkeudu millään sille koulukaverille.
Kääntämisessä tulee varmaan virheitä. Kun valitset "Make EXE", niin tuleeko ruudulle jotain tekstiä?
Ei tule. Kone vain surisee ja ruutu sulkeutuu.
Tuleeko siihen edes ensin sellaista ikkunaa, mistä saa valita kaikenlaisia ominaisuuksia, mitä EXE:een tulee?
Vain jos valisee options -välilehdeltä "Full menus" -kohdan. Muulloin ei tule.
Höh, no ei kai sen nyt EXE-ikkunaan mitään pitäisi vaikuttaa. Mutta siis ilman muuta, kun valitset sieltä valikosta Run ---> Make Exe File ---> pitäisi aueta ikkuna, josta saa tehdä valintoja ja sitten painaa Make Exe, mutta tätäkö ei tule?
Kyllä tuo Make exe tulee. Mutta missä on exe?
Kun valitset Make Exe, sulkeutuuko ikkuna niin, että voisit taas kirjoittaa QBasicikilla koodia?
Ei. Ikkuna katoaa kokonaan vaikka olen ottanut vain Make exe, En Make exe and exit.
Eli siis qb sulkeutuu kokonaan ja et löydä exeä qb:n pääkansiosta?
Edit: Sitten olisi varmaan parasta asentaa QB uudelleen.
Edit2: Ei ku jaa ei toimi 4.5:lla kaan. Sitten en osaa sanoa mitään.
Tai kyl se on jotain tehny. Obj -tiedoston. En tiedä mikä se on, mutta exee en edelleenkään löydä edes hakutoiminnolla. Hommasin muuten "uuden" qb:n. Siinä exeiksi muuttaminen toimii. Paitsi ei exejä. Vain obj -tiedostoja.
Nyt se on jotenkin tehnyt exen. Toimii kuten pitääkin.
Joo, luulen, että vika oli aikaisemmassa QB:ssäsi. Jokin tärkeä tiedosto kenties puuttui, tai jotain.
Aihe on jo aika vanha, joten et voi enää vastata siihen.