Miten saan vai saanko mitenkään ohjelmoitua QBasicilla ohjelmaa, joka parin sekunnin välein toistas tietyn DOS komennon
Mahtavan otsikon kunniaksi vastaan vain: Saat.
kiitos tuosta pienestäkin tiedon jyvästä
Kyllä tosta on mun mielestä ihan hyvä lähtee jo liikkeelle :o. Joten jatketaan: TIMER ja SHELL ovat ne komennot, joita itse käyttäisin. Bonarina tietysti joku DO-LOOP-silmukka, mutta eihän sitä lasketa. Hou hou hou ja hyvää tapania!
Pari pikku koodia:
' huonompi vaihtoehto, älä käytä ' PUBLIC DOMAIN DO SLEEP 2 SHELL "echo HUONOMPI VAIHTOEHTO!!!" LOOP UNTIL INKEY$ = CHR$(27)
' parempi vaihtoehto, käytä tätä ' DIM DOSCMD AS STRING ja GOSUB ASETA aina alkuun ' yritä laittaa DO-LOOPissa GOSUB DOSSI mahdollisimman moneen väliin ' ASETA-kohdassa voit määrittää asetukset ' koodia voi muokatakin ' PUBLIC DOMAIN DIM DOSCMD AS STRING GOSUB ASETA DO GOSUB DOSSI LOOP UNTIL INKEY$ = CHR$(27) END DOSSI: IF TIMER > DTIMER + DWAIT OR TIMER < DTIMER THEN SHELL DOSCMD DTIMER = TIMER END IF RETURN ASETA: DOSCMD = "echo PAREMPI VAIHTOEHTO!!!" ' SUORITETTAVA KOMENTO DTIMER = TIMER ' HUOLEHTII AJASTA, EI SAA MUUTTAA DWAIT = 2 ' KUINKA MONEN SEKUNNIN VÄLEIN
EDIT: Jos et halua käyttää DO-LOOPia, niin voit myös komentosarjassa moneen väliin laittaa GOSUB DOSSI
Kannattaisi mieluummin nostaa aina tuota Juhkon DTIMER-muuttujaa DWAITilla. Nythän nuo molemmat koodit toimivat aivan yhtä huonosti, kun aika mitataan edellisen ajon lopusta seuraavan alkuun.
TIMER ON ON TIMER(2) GOSUB Noob DO UNTIL INKEY$ = CHR$(27): LOOP END Noob: SHELL "echo Noob!" RETURN
-Grey-
Grey > No tuo taitaa olla parempi...
Aihe on jo aika vanha, joten et voi enää vastata siihen.