*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
Tässä tuli käytettyä LOOP UNTIL -komentoa. Korjatkaa jos ei toimi kunnolla.
Ja asetus.txt on melko turha myös...
Aihe on jo aika vanha, joten et voi enää vastata siihen.