Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Ohjelmointikielen teko.....

Sivun loppuun

juhaz [10.07.2002 00:59:32]

#

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.....?

trinit [10.07.2002 18:48:16]

#

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

(nimetön) [10.07.2002 19:20:19]

#

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"

HtH [10.07.2002 20:31:02]

#

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..

(nimetön) [10.07.2002 21:22:09]

#

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ää.

trinit [10.07.2002 21:28:19]

#

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. ?

(nimetön) [10.07.2002 22:28:21]

#

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

Lauri [10.07.2002 22:38:34]

#

Mitenkä saa ohjelma erotettua "" välistä tekstin?

HtH [11.07.2002 11:58:02]

#

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".

TH [11.07.2002 16:38:53]

#

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! :)

Dj Wolf [11.07.2002 17:29:40]

#

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.

HtH [11.07.2002 22:37:51]

#

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

TH [12.07.2002 00:04:19]

#

Jihaa! Onnistuin tekemään jonkinlaista omaa ohjelmointikieltä. :) Kielen nimenä on QProgram. Kiitokset tuosta pilkkutiedosta, HtH, en tiennyt sitä.

juhaz [23.08.2003 10:24:51]

#

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ä.... :(


Sivun alkuun

Vastaus

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

Tietoa sivustosta