Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Muistutusohjelma

Dj Wolf [22.06.2002 19:38:32]

#

*QB* Eli tämä ohjelma tarkistaa päivän ja katsoo jos kyseiselle päivälle olisi tallennettu jokin muistutus. Muistutuksen avaamis-ohjelma kannattaa kääntää exeksi ilman Brun-juttuja, ja sitten siitä vaikka autoexec.bat:iin :).
Kaikkien tiedostojen on oltava samassa hakemistossa.

Luo lisäksi ohjelman kansioon tyhjä date.txt ja asetus.txt, jossa on vain numero 0 tai 1 (ks. seuraava koodilistaus).

Pääohjelma #1, muistutuksen lisääminen onnistuu tällä

CLS
DIM paiva AS STRING   'Muistutusohjelman yksinkertainen kirjoitushommeli
DIM kuuka AS STRING
DIM vuosi AS STRING
DIM jenkki AS STRING
DIM oikein AS STRING
DIM teksti AS STRING
DIM tyyli AS STRING
DIM kirjotus(1 TO 100) AS STRING
DIM alku AS STRING
DIM loppu AS STRING

alku = "[Tekstin alku]"
loppu = "[Tekstin loppu]"

COLOR 2: LOCATE 1, 1: PRINT "Mille päivälle haluat muistutuksen?"
COLOR 3: LOCATE 2, 1: PRINT "Muista erotella päivä, kuukausi ja vuosi pilkuilla (esim. 24,12,2002)!"
COLOR 15: INPUT "", paiva, kuuka, vuosi'Input ei ole kyllä kovin hyvä, mutta olkoot...

IF VAL(paiva) < 10 THEN paiva = "0" + paiva ELSE
IF VAL(kuuka) < 10 THEN kuuka = "0" + kuuka ELSE
IF VAL(vuosi) < 10 THEN vuosi = "0" + vuosi ELSE 'Eihän sitä koskaan tiedä...

jenkki = kuuka + "-" + paiva + "-" + vuosi 'amerikkalaisella tavalla
oikein = paiva + "-" + kuuka + "-" + vuosi 'ja suomalaisella
COLOR 5: LOCATE 4, 1: PRINT "Kirjoita muistutus päivälle " + oikein; ". Tyhjä rivi lopettaa.":

DO
temp = temp + 1
COLOR 15: LINE INPUT "", teksti
kirjotus(temp) = kirjotus(temp) + teksti
LOOP UNTIL temp = 100 OR teksti = ""  'maksimissaan 100 riviä...
temp = 1 '<-- TŽRKEŽ! (jätetään temp ykköseksi:)

OPEN "asetus.txt" FOR INPUT AS #1 'avataan asetus.txt...
INPUT #1, kumpi                   'luetaan siellä oleva numero...
SELECT CASE kumpi                 'seuraavissa dd=päivä mm=kuukausi yyyy=vuosi
CASE IS = 0: tyyli = jenkki       'jos numero=0, käytetään tyyliä mm-dd-yyyy
CASE IS = 1: tyyli = oikein       'jos numero=1, käytetään tyyliä dd-mm-yyyy
CASE ELSE: tyyli = jenkki     'se, mikä arvo sinulla täytyy olla,
END SELECT                    'riippuu koneesi tyylistä kertoa nykyinen päivä
CLOSE #1                      'itselläni kone kertoo sen tyylillä mm-dd-yyyy

OPEN "date.txt" FOR APPEND AS #1 'APPEND = kirjoitetaan tiedoston loppuun
PRINT #1, tyyli  'kirjoitetaan päivämäärä tyylillä ;)
PRINT #1, alku   'ja muistutuksen aloitusteksti
DO
PRINT #1, kirjotus(temp)
temp = temp + 1
LOOP UNTIL kirjotus(temp) = "" OR temp = 100
PRINT #1, loppu  'ja vihoviimeisenä tallennetaan lopetusteksti
CLOSE #1

CLS
COLOR 14: LOCATE 2, 36: PRINT "Valmis!": COLOR 7

Pääohjelma #2, muistutuksien avaamisohjelma

CLS
DIM alku AS STRING    'Muistutuksen avaaminen suoriutuu tällä koodilla.
DIM loppu AS STRING
DIM tieto AS STRING
DIM paeva AS STRING
DIM texti(1 TO 100) AS STRING

alku = "[Tekstin alku]"
loppu = "[Tekstin loppu]"
paeva = DATE$
kas = -3
OPEN "date.txt" FOR INPUT AS #1

DO
LINE INPUT #1, tieto
IF tieto = paeva THEN
LINE INPUT #1, tieto
IF NOT tieto = alku THEN COLOR 4: LOCATE 6, 10: PRINT "Tiedostoa on sorkittu!"
DO
temp = temp + 1
LINE INPUT #1, tieto
texti(temp) = tieto
LOOP UNTIL tieto = loppu OR EOF(1)
texti(temp) = "": temp = 123 'jos muistutus löytyy niin temp=123
END IF
LOOP UNTIL EOF(1)
CLOSE #1

IF temp = 0 THEN END ELSE  'jos temp=0 lopetetaan
b = LEN(paeva): temp = 1
COLOR 10: LOCATE 1, 80 - b: PRINT paeva 'tasaus oikeaan laitaan
DO
a = LEN(texti(temp))
COLOR 15: LOCATE temp - kas, 40 - a / 2: PRINT texti(temp)'tasaus keskelle
temp = temp + 1

IF temp - kas >= 24 THEN    'tämä estää erään virheen...
kas = kas + 20
COLOR 20: LOCATE 24, 74: PRINT "LISŽŽ"
COLOR 10: LOCATE 1, 80 - b: PRINT paeva 'tasaus oikeaan laitaan
SLEEP '<---------------------- käyttäjän on näpäytettävä nappia!
CLS
ELSE
END IF

LOOP UNTIL texti(temp) = ""
COLOR 10: LOCATE 1, 80 - b: PRINT paeva 'tasaus oikeaan laitaan
mennyt = TIMER                  'otetaan jo mennyt aika muistiin
DO
LOOP UNTIL TIMER - mennyt > 2.5 'odotellaan 2.5 sekuntia
CLS
END

Dj Wolf [23.06.2002 17:31:50]

#

Tässä tuli käytettyä LOOP UNTIL -komentoa. Korjatkaa jos ei toimi kunnolla.

Dj Wolf [09.07.2002 18:00:41]

#

Ja asetus.txt on melko turha myös...

Vastaus

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

Tietoa sivustosta