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!
No VB itse on sellainen ohjelma. Kopioit vaan sen.
Ois se kans aika siistiä jos tajuttais mitä haet takaa?
Ööööh... Tarkoititko että se suorittaisi Visual Basic-koodia vai jotain sinun omaa ohjelmointikieltä?
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
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.
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...
"Microsoft Script Control" -nimisellä komponentilla voi suorittaa VB- ja JScript koodia.
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.
Niinhän siinä pitää kahtoa.
Sain jo vastauksen kysymykseeni, eli kyllä ja ei.
Kiitos.
Kuinkas sitten EXE tehdään? Ei tule olemaan helppoa, vai :D
Ei. Pääset opettelemaan konekieltä (siis sitä ihan oikeaa sellaista, ei mitään assyä).
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 ^^
Pelkästään matemaattisten lausekkeiden koodaaminen on todella mutkikas ja vaikea tehtävä. Olen sellaisen moduulin tehnyt kun en tiennyt tuosta ScriptContollista.:(
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/
Aihe on jo aika vanha, joten et voi enää vastata siihen.