Harjoittelen Visual Basicilla koodaamista (versiolla 3.0) ja teen parhaillaan laskinta. Muuten kaikki koodit, ulkoasu jne. on valmiina, mutta yksi koodinpätkä uupuu: eli laskimessa on kaksi tekstiboxia (toiseen näppäillään laskettava lauseke esim. 1 1-3 ja toiseen tulee tulos), mutten keksi miten saisin ohjelman suorittamaan text1:sen lauseketta. Eli kun on näppäillyt laskutoimituksen lukee text1 boxissa 1 1. Ilmeisesti = -painikkeeseen tarvittaisiin jonkinlainen suorituskäsky, esim. text2 = run"text1" tai jotain.
Osaisiko kukaan siis kertoa millä komennolla/koodinpätkällä = -painike toimisi? KIITOS!
Osaisiko kukaan siis kertoa millä komennolla/koodinpätkällä = -painike toimisi? KIITOS!
Vastaukset 2
Vanhimmat
Hieman helpommalla olisit päässyt, jos olisit tehnyt tuon toisella tapaa eli lukemalla näppäimien painallukset. Tekstivaihtoehdosta löysin seuraavan esimerkin:
http://www.programmersheaven.com/download/43994/download.aspx
Esimerkissä oleva evaluate -funktio (func.frm:ssa) tekee sen laskennan.
Itse olen tehnyt tuollaisia ohjelmiini jotenkin siten, että ensin etsin ensimmäisen operaattorin ja sitten seuraavan summan.
Koodina jotenkin näin (kotikoneessani ei ole vb:tä, joten en voinut testata asiaa):
dim i as integer, OperaattorinPaikka as integer,Operaattori as string,EdOperaattori$
dim Tulos as double, Luku as double
dim KokoLaskukaava as String'sisältää siis esim 33 4*5
Tulos=0
EdOperaattori$=" "'eka luku aina ynnätään
while kokolaskukaava""
OperaattorinPaikka=0
for i=1 to len(KokoLaskukaava)
operaattori$=mid$(KokoLaskukaava,i,1)
if instr(1," -*/",Operaattori$) then OperaattorinPaikka=i:exit for
next
if OperaattorinPaikka=0 then OperaattorinPaikka=Len(KokoLaskukaava) 1
Luku=val(mid$(KokoLaskukaava$,Operaattorinpaikka-1))
KokoLaskukaava$=mid$(KokoLaskukaava,Operaattorinpaikka 1)
select case EdOperaattori$
case " ":Tulos=Tulos Luku
case "-":Tulos=Tulos-Luku
case "*":Tulos=Tulos*Luku
case "/":Tulos=Tulos/Luku
end select
EdOperaattori$=Operaattori$'seuraavaksi on tämän -*/ vuoro
wend