Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: "Koodieditori"

Sivun loppuun

Lumi-ukkeli [08.01.2005 19:37:51]

#

Onko kellään tietoa, että pystyykö visual basicilla tekemään semmoisen ohjelman, johon kirjoitetaan tekstiä, ja sitten ohjelma suorittaa sen tekstin?
Enpä usko että pystyy, mutta vähän olis siisti jos pystyis!

KeKimmo [08.01.2005 19:42:01]

#

No VB itse on sellainen ohjelma. Kopioit vaan sen.

kaviaari [08.01.2005 19:42:05]

#

Ois se kans aika siistiä jos tajuttais mitä haet takaa?

InvalidCo [08.01.2005 19:43:04]

#

Ööööh... Tarkoititko että se suorittaisi Visual Basic-koodia vai jotain sinun omaa ohjelmointikieltä?

Gwaur [08.01.2005 19:46:43]

#

Tässä näköjään yritetään tehdä tulkkia. Toki semmoinen onnistuu. Luet vaan tiedostosta rivin kerrallaan (tai tekstilaatikosta) ja jollain merkkijonofunktioilla parsit sitä :) tai jotain

Lumi-ukkeli [08.01.2005 22:15:12]

#

No ohjelmassa olis textboxi, johon käyttäjä voi kirjoittaa tekstiksi Visual Basic-koodia, ja sitten Visual Basic suorittaisi sen koodin.

En ole ihan varma, mutta kyllä se varmaan tulkki olisi tai joku semmoinen.

Gaxx [08.01.2005 22:27:18]

#

Katot vaikka, että onko tuon rivin alussa komento

Esimerkiksi jos käyttäjä kirjoittaa koodiksi:
print Moi! kuis hurisee?

...niin tämän voi sitten tulkita näin:

If Left(koodirivi, 5) = "Print" Then Print Right(koodirivi, Len(koodirivi) - 6)

Lainausmerkit ja kommentit samalla rivillä ovat sitten oma hommansa, mutta en laittanut niitä, jotta esimerkki olisi mahdollisimman yksinkertainen.

...ja ehtolauseet ovat sitten aivan oma lukunsa...

Blaze [08.01.2005 22:45:41]

#

"Microsoft Script Control" -nimisellä komponentilla voi suorittaa VB- ja JScript koodia.

Antti Laaksonen [08.01.2005 23:35:04]

#

Oman tulkin tekeminen on mahdollista, mutta tehtävä ei ole helppo. Visual Basic ei sisällä valmista komentoa koodin suorittamiseen, koska tämmöisen ominaisuuden liittäminen käännettyyn ohjelmaan ei käy päinsä. Tosin Blazen mainitsema kontrolli kelpuuttaa VBScript-koodia, joka on lähellä VB:tä.

ScriptControl1.ExecuteStatement "MsgBox ""Moikka!"""

Jos joskus haluat tehdä oman tulkin, ei auta muu, kuin selvittää käyttäjän syöttämästä merkkijonosta, mitä kulloinkin pitää tehdä. Print-komennon tulkitseminen on vielä helpoimmasta päästä. Siinäkin tosin pitää ottaa huomioon, että rivillä voi olla myös muuttujia, laskutoimituksia, funktioiden kutsuja jne.

Lumi-ukkeli [09.01.2005 12:32:52]

#

Niinhän siinä pitää kahtoa.
Sain jo vastauksen kysymykseeni, eli kyllä ja ei.

Kiitos.

Juice [09.01.2005 18:39:29]

#

Kuinkas sitten EXE tehdään? Ei tule olemaan helppoa, vai :D

Blaze [09.01.2005 19:17:39]

#

Ei. Pääset opettelemaan konekieltä (siis sitä ihan oikeaa sellaista, ei mitään assyä).

CoDeR [12.01.2005 09:23:46]

#

Lumi-ukkeli voisitko kertoa miten sait asian ratkaistua? olen nimittäin itsekkin mietiskellyt että olisiko tuollainen mahdollista / kovinkin vaikeaa mutta olen ollut sitä mieltä ettei se ole mahdollista tai ainkin liian vaikeaa jos ei tiedä mistä aloitta ja miten toteuttaa se :)
olisin kovin kiitollinen jos voisit kertoa ^^

setä [12.01.2005 09:40:18]

#

Pelkästään matemaattisten lausekkeiden koodaaminen on todella mutkikas ja vaikea tehtävä. Olen sellaisen moduulin tehnyt kun en tiennyt tuosta ScriptContollista.:(

Heikki [12.01.2005 09:59:14]

#

Blaze kirjoitti:

Ei. Pääset opettelemaan konekieltä (siis sitä ihan oikeaa sellaista, ei mitään assyä).

Olen saanut sellaisen käsityksen että monet kääntäjät tekevät ensin assembly-kielisen ohjelman jonka assembleri sitten kääntää. Voi olla että olen väärässä, mutta tätä tapaa käyttäisin jos itse lähtisin oikeata kääntäjää tekemään.

Ja putkasta löytyy eräs koodivinkki asiaan (skriptikieleen) liittyen, ei tosin Basicia: https://www.ohjelmointiputka.net/koodivinkit/23697-cpp-yksinkertainen-tulkki


Sivun alkuun

Vastaus

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

Tietoa sivustosta