Tällä voi lisätä ohjelmaan ylimääräisiä ohjelmarivejä ajon aikana. Tästä on hyötyä jos pitää vaikka alustaa tuntematon määrä muuttujia. Tai jotain tällaista:
type pelaaja pisteet as integer enerigia as integer end type input "Anna nimesi:",plyri$ Aja "dim "+plyri$+" as pelaaja"
'Kokeiluohjelma DECLARE SUB Aja (komento AS STRING) LINE INPUT "Kirjoita QBasic komento:", kom$ Aja kom$
SUB Aja (komento AS STRING) OPEN "temp.bas" FOR BINARY AS 1 'Varmistetaan, että tiedostoa ei ole olemassa (hankalasti) IF LOF(1) > LEN(komento) THEN CLOSE #1 KILL "temp.bas" OPEN "temp.bas" FOR BINARY AS 1 END IF 'Laitetaan annettu merkkijono tiedostoon FOR a = 1 TO LEN(komento) merkki$ = MID$(komento, a, 1) PUT #1, a, merkki$ NEXT a CLOSE #1 'Ajetaan koodit tiedostosta CHAIN "temp.bas" 'Ja poistetaan todisteet KILL "temp.bas" END SUB
Ovela juttu, mutta ei toimi EXE-tiedostoissa. Tiedoston olemassaolon voi tarkistaa myös näin:
IF DIR$("c:\hakemisto\tiedosto.bas") = "" THEN PRINT "Tiedostoa ei ole olemassa." ELSE PRINT "Tiedosto on olemassa." END IF
Ja tuo Laaksosen mainitsema tarkastus on toki parempi. Kiva esimerkki, eihän tuollaisia tietystikään tulisi käyttää, CHAINitkin ovat jäänteitä aatamin-aikaisista beisikeistä :)
Tästähän voi vaikka olla joskus jotain hyötyä.. tuo CHAIN-komentoko lisää sen siihen ohjelmaan?
Juu. Toinen vastaava komento on RUN, mutta en oikein tiedä mitä eroa niilä on.
hmm... Suht hyödyllinen
Aika hyödyllinen, mutta tuo ei siis toimi jos ohjelma on käännetty exeksi? Damn! Heti tuli vaikka mitä ideoita....
Jee ai niin chainikin on olemassa... :( mä oon tehny ihan turhaan sairaan ison laskurin... niin, asiasta poiketen, tein kerran qb:llä hienon laskurin jolla voi laskea vaikka "sqr(val("jee123")+1)/sin(6)". Tein sen silläin että se tallensi toiseen laske.bas tiedostoon "print #1," + lasku$" kun se oli avannut yhden temppitiedoston jonka sisällön tää itse laskuri sitten tarkisti, ja koko ulkoisen laskurijutskan(siis tää laske.bas) ohjelma sitten käänsi qb:n linkkereillä ja ajoi sitten ja katsoi tiedostosta mitä tuli. Arvatkaa oliko hidas... ja kun sen voi sitten tehdä CHAINillakin... kivaa! tein vähä turhaan. No joo ette kuitenkaan tajua mun sönkötyksiä... mutta saapahan purkaa tätä "höh sen olis voinu tehdä noinkin vitsi mun kanssa" jonnekki :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.