Heh..... minä tässä, kun oli tylsää niin ajattelin tehdä ohjelmointikielen qbasicilla (HEHHEHHEH)....... no tämä ei osannut tietenkään exe-tiedostoja tehdä vaan pelit ja ohjelmat olisivat ini-tiedostoja, joita sitten ajettaisiin tietenkin asiaan kuuluvalla ohjelmalla, joka ymmärtäisi. No ohjelma tunnisti vain komennon printf <"terve"> ja osasi jopa laittaa sen tulemaan ruutuun, mutta tuohon olisikin ihan kiva tietää, että mitenkä onnistuisi (jos onnistuu) niin sillainen juttu, että noita kaikkia sanoja ei tarvitsisi tällä systeemillä ohjelmoijan ohjelmoida kaikkia vaan, että se osaisi lisätä ne tarvittavat sanat tarvittaviin kohtiin. Esim: Käyttäjä kirjoittaa: "printf <"moro"> ja tallentaisi niin sitten ohjelman ajolla taas sitten ajettaisiin ja se tietäisi, että käyttäjä on juuri tuon sanan kirjoittanut...... tai saattaa olla parempi jättää tuo tuohon.....?
Siis tarkoitatko sellaista ennakoivaa tekstinsyöttöä samaan tyyliin kuten joissakin kännyköissä viestien kirjoitustilassa (T9 Input)?
Kyllähän se ihan mahdollinen on. Itsekin joskus yritin tehdä vastaavanlaista rutiinia VB:llä. "Ohjelma" ei osannut vielä tallentaa sanoja, mutta se osasi hakea tiedostosta sanoja, joita se ehdotti kirjoituksen aikana. Sain sen muistaakseni tehtyä niinkin pitkälle, että rutiini tunnisti samanlailla alkavat mutta eripituiset sanat (esim. on, onki, onneksi) joita sitten ehdotettiin
jaa.... nyt en kyllä ymmärtänyt =)
Eli siis kai jotakuinkin tuollein mitä jo sanoit. Eli ohjelman pitäisi tunnistaa sanat.... tai siis komennot ja osata sitten ajaa sen mukaan niitä. Kuten jo kerroin niin sainkin toimimaan ja ohjelma käyttää ini tiedostoa ja ymmärtää, että jos ohjelma.ini tiedostossa lukee printf<"moro"> niin se tarkoittaa samaa kuin print "moi"
Kyllä minäkin tuollaisen "ohjelmointikielen" joskus tein... Sillä tosin ei oikein muuta pystynyt tekemään, kuin tekstiä, muuttaa väriä, ja sellaista. Jonkinlainen iffikin siinä oli :) ja muuttujatkin..
no eipä paljoa tarvii jos aikoo siihen joku aika sitten keskusteltuun GUI-juttuun lisätä, että voi tehdä omia ohjelmia ja pelejä, joita ohjelma ymmärtää.
juhaz, pistä koodisi esille (jolla teit sen printf:n), niin ehkä siitä ymmärrän mitä ajat takaa.
En oikein vieläkään ymmärtänyt, mutta siis tekemäsi ohjelmointikielesi koodi kirjoitetaan tiedosto.ini:in ja tätä .ini tiedostoa sitten luetaan jollakin tulkin tapaisella ohjelmalla, joka muuttaa printf:n print:ksi jne. ?
jotakuinkin tähän tyyliin siis se oli? Minä ehdin poistaa sen alun jo koneelta, mutta kai se oli tähän tyyliin? No tällä ekalla pitäisi tavallaan "ajaa" se ohjelma eli jonkinsortin tulkki, jota sitten jos joskus valmistuu jotain niin yhdistän GUI-ohjelmaani tuon mahdollisuuden niin se ymmärtää, että miten ajetaan, että mitä tapahtuu jos lukee esimerkiksi ohjelma.ini tiedostossa printf<"moi">
OPEN "ohjelma.ini" FOR INPUT AS #1
INPUT #1, b$
if b$ = "printf<"moi">" then print "moi"
CLOSE #1
tallennus taas taphtuu:
INPUT "", b$
OPEN "ohjelma.ini" FOR OUTPUT AS #1
PRINT #1, b$
CLOSE #1
Mitenkä saa ohjelma erotettua "" välistä tekstin?
Eikö näin olisi vähän kätevämpi?
OPEN "ohjelma.ini" FOR INPUT AS #1
INPUT #1, b$
if left$(b$, 8) = "printf<"+chr$(34) THEN g$ = right$(b$, len(b$) - 8): g$ = left$(g$, len(g$) - 2): print g$
CLOSE #1
Näin ohjelma laittaisi esim tekstin HtH kun ini tiedosto sisältäisi rivin printf<"HtH"> tai minkä tahansa tekstin, eikä pelkästään tekstin "moi".
En osaa koodata asiaa mitä tarkoitan, mutta luultavasti olisi aika selkeä tehdä jokin tämän kaltainen:
Oletetaan että tässä olisi nyt jokin ohjelmointikielijuttu, jolla olisi tehtävänä avata jokin tiedosto, vaikka ohjelma.ini. Se voisi näyttää vaikka tältä:
message
Hui kauheeee!
color
7
message
Hui hirvee (ei poroa)!
quitme
Ohjelma aloittaisi ensimmäisestä rivistä ja kävisi läpi vaihtoehdot. Jos luettavan rivin teksti olisi "message" ohjelma tulostaisi seuraavan rivin tekstin näytölle. Sen jälkeen rivillä jolla lukee "color", ohjelma taas tekisi niin että kun on vuoro lukea seuraava rivi, se muuttaakin värin "color" rivin jälkeisen arvon mukaiseksi. Sitten taas sama "message" homma, ja jos jollain rivillä, eli tässä viimeisellä, lukee "quitme" olisi vaikutus sama kuin END! :)
Itsekin olen tehnyt ohjelman, joka lataa tiedostosta tekstiä ja ns. avainsanojen kohdalla tekeekin muuta... esim. [Tiedoston alku] määritteli tiedoston alun [Color] 4 värin jne.
noin tulee sotkuisen näköistä koodia, koska QB:ssä input komento tulkistee pilkun rivin vaihdoksi, voi tehdä näin:
message, Hui kauheeee!
color, 7
message, Hui hirvee (ei poroa)!
quitme
Jihaa! Onnistuin tekemään jonkinlaista omaa ohjelmointikieltä. :) Kielen nimenä on QProgram. Kiitokset tuosta pilkkutiedosta, HtH, en tiennyt sitä.
Sori, kun nostan näinkin vanhan keskustelun takaisin ylös, mutta olisiko mitään ideaa lisätä mitään input "", c$ tyylistä, kun on käytössä samanalainen systeemi kuin tuo
message, Hui kauheeee!
color, 7
messaeg, Hui hirvee (ei poroa)!
quitme
Olen fake ossiin (siis uusimpaan windoxiin) tehnyt tuollaisen ja se tunnistaa kaikki komennot, jotka löytyvät windoxin shellistä, mutta en ole saanut input tyylistä komentoa oikein toimimaan.
käyttäjä voi antaa vaikka komennon
ask, mikä on nimesi
niin ohjelma kysyy sitten "mikä on nimesi" ja käyttäjä voi vastata ja kun kooditiedostossa on vielä perässä vaikka komento
text, ai nimesi on
niin se näyttäisi mitä käyttäjä on laittanut tuohon "mikä on nimesi"
taitaa tulla tuolla tavalla toteutettuna aika vaikeaksi / mahdottomaksi ja uskon, että olisi parempiakin tapoja toteuttaa, kuten varmaan jotenkin tyyliin
OPEN "ohjelma.ini" FOR INPUT AS #1
INPUT #1, b$
if left$(b$, 8) = "printf<"+chr$(34) THEN g$ = right$(b$, len(b$) - 8): g$ = left$(g$, len(g$) - 2): print g$
CLOSE #1
, mutta en ole koskaan oikein ymmärtänyt näitä left$(q$), blaablaablaa systeemejä, että hitusen osaan muokata, mutta välttämättä se ei sitten enään toimi.
edit: poistaa oudosti muutamista kohdista alusta tekstiä.... :(
Aihe on jo aika vanha, joten et voi enää vastata siihen.