Kieli: QBasic
Olen kehittämässä sellaista yksinkertaista ohjelmointikieltä. Eteeni tuli eräs ylitsepääsemätön ongelma. Kysynkin siis näin: Miten pystyy tekemään QBasicilla semmoisen ohjelman, jossa on tekstikenttä. Kun tekstikenttään syöttää tietyn merkkijonon ja painaa nappia, tulostuu ruudulle tietty asia syötetyn tekstin perusteella.
Eli kun syötän tekstikenttään merkkijonon: INSCREEN = %bold:type"tekstiä" -ja painan tämän jälkeen nappia, tulostuu näytölle täsmälleen seuraavanlainen teksti lihavoituna: "tekstiä". Ja kun syötän toisen merkkijonon: SHELL = ('xcopy') %; -ja painan nappia, ohjelma suorittaa komennon "xcopy".
Kiitos, jos osaatte ratkoa ongelman. Itse en keksi millään ratkaisua.
Joudut käyttämään graafista tilaa, koska tekstitila ei tue lihavointeja. Graafisessa tilassa joudut koodamaan fonttimoottorin, joka hoitelee tekstin tulostamisen samaan tapaan kuin PRINT, paitsi että lisäät siihen ominaisuuksia, joilla tekstin saa myös lihavoitua.
Tuossa on yhdenlainen esimerkki PRINT-korvikkeesta: https://www.ohjelmointiputka.net/koodivinkit/
Hätäratkaisu on tulostaa "lihavoitu" teksti kirkkaammin:
COLOR 7 PRINT "Tavallinen teksti" COLOR 15 PRINT "Lihavoitu teksti"
Mutta mikä on tarkalleen ongelma: tekstikentän ja napin luominen, käyttäjän antaman komennon käsittely vai tekstin tulostus?
Suurimmaksi osaksi tuon käyttäjän antaman komennon käsittely. Ettäkun syöttää tietyn merkkijonon, tulostuu sen perusteella näytölle tietyn tyylinen teksti, tai suorittaa järjestelmä tietyn komennon.
Oman ohjelmointikielen toimivuuden kriteerinä voitaisiin varmaan käyttää sanontaa "Koodattu ja käännetty" samalla kielellä. ??
Kuten esim C++
Eli eka versio "Omasta" C++ koodia, kun valmis koodataan "Omalla kielellä" koko hoito uudestaan...
JoreSoft kirjoitti:
Oman ohjelmointikielen toimivuuden kriteerinä voitaisiin varmaan käyttää sanontaa "Koodattu ja käännetty" samalla kielellä. ??
En pitäisi tuota minään meriittinä välttämättä. Aikamoinen homma olisi lähteä kaikkea kääntämään itsellään, puhumattakaan siitä että joka versiossa joutuisi ensin toteuttamaan uudet asiat virittelemällä vanhan päälle ja sitten vasta helpommin kun uudempi kieli sitä tukisi.
Se että esimerkiksi gcc käännetään itsellään johtuu ihan muista syistä ja onhan tuo ihan hyvä testikin toiminnallisuudesta.
Sitä juuri tarkoitin :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.