Ei ollut Qbasicille omaa aluetta, niin kysytään täällä sitten...
Kuinka/millaisella koodinpätkällä Qbasicissa saa niin, että kun lause sisältää jonkin sanan tai sana sisältää jonkin merkkijonon, niin käy jotakin?
Kuinka/millaisella koodinpätkällä Qbasicissa saa niin, että kun lause sisältää jonkin sanan tai sana sisältää jonkin merkkijonon, niin käy jotakin?
Vastaukset 15
Vanhimmat
QBASIC?!?!?!?!
Wanha?
Mitä sitten vaikka on vanha? Vanha kyllä mutta still käyttökelpoinen. Kunnon nörtti osaa käyttää myös Dos-puolen työkaluja tai jos linuxia tai muuta unixia käyttää niin komentoriviä ja erilaisia skriptauksia.
Tarjolla on myös esim. FreePascal ja Lazarus.
Avoimia ja ilmaisia vaihtoehtoja (toimivat myös linuxissa)
http://wiki.mureakuha.com/wiki/FreePascal
ja
http://wiki.mureakuha.com/wiki/Lazarus
Tällöin ei ominaisuudet heti lopu!
raskas. Nimittäin jos haluaa tehdä esim. dossiin pienen ohjelmanpätkän jonka on tarkoitus toimia lähes kuin komentojonotiedostot, siis batit niin Qbasic sopii tarkoitukseen mainiosti.
Miksi ampua kärpästä tykillä kun sen voi nitistää kärpäslätkälläkin...
Tässä kyseisessä esimerkissä lauseesta "Minä olen koodari" halutaan etsiä sana "koodari", etsintä aloitetaan lauseen ensimmäisestä merkistä, siis 1.
Eli A = mistä kohtaa lausetta etsintä aloitetaan,
B$ = Lause josta sanaa etsitään
C$ = Sana jota etsitään
Kun sana löytyy hypätään kohtaan FOUND
---
A = 1
B$ = "Minä olen koodari"
C$ = "koodari"
If Instr(A, B$, C$) Then Goto FOUND Else HYPIYLI
FOUND:
Print "Nyt löytyi!"
HYPIYLI:
End
---
Eli syntaksi on siis jos vain halutaan katsoa löytyykö sanaa mutta ei välitetä mistä kohtaa:
Instr(A, B$, C$)
tai jos halutaan etsiä kohtaa josta etsittävä sana löytyi niin silloin syntaksi on tämä:
X = Instr (A, B$, C$)
jossa tuo X ilmoittaa místä kohtaa lausetta etsittävä sana löytyi
Tuo on jo aika hyvä. (vaikkakin änki joka tapauksessa FOUND:ia, vaikka olisi kirjoittanut mitä tahansa)
Tosin en hae ihan tuollaista systeemiä, sillä tuota lausetta "Minä olen koodari"
ei voi määrittää etukäteen, sillä ei voi tietää mitä käyttäjä kirjoittaa.
Eli siis sen koko jutun pitäisi olla tyyliin
IF v$ sisältää "koodaaja" THEN GOTO FOUND
Eli ruudulla lukeepi vaikkapa
"Kuka olet?"
sitten on INPUT v$ ja käyttäjä syöttää siihen tietoa
ja jos käyttäjä syöttää siihen lauseen joka sisältää sanan "koodaaja", niin ohjelma menee kohtaan FOUND
Function input2()
input v$
input2 = v$
end function
if instr(input2,"koodaaja") then
print "Nyt löytyi"
end if
input v$:if instr(v$,"koodaaja") then print "löytyi"
input"kuka olet?",v$:if instr(v$,"koodaaja")then print"löytyi"
Eli ite tekisin koko homman näin..
CLS
PRINT "Kuka olet?"
INPUT v$
IF INSTR(v$, "koodaaja") THEN GOTO FOUND ELSE GOTO NOTFOUND
FOUND:
PRINT "Ahaa, olet koodaaja"
END
NOTFOUND
PRINT "Et olet koodaaja!"
END
Mutta voisiko joku kertoa mulle, että miten saan tuohon kaks mahollisuutta?
Eli kaks IF INSTR-hommaa.
Eli jos vaikka sanoo "koodaaja", tulee eri juttu, ja jos sanoo "lifettäjä", niin taas eri.
Jostain syystä ei hyväksy tätä:
IF INSTR(v$, "koodaaja") THEN GOTO FOUND
IF INSTR(v$, "lifettäjä") THEN GOTO LIFE ELSE GOTO NOTFOUND
CLS
PRINT "Kuka olet?"
INPUT v$
IF INSTR(v$, "koodaaja") THEN valinta=1
IF INSTR(v$, "lifettäjä") THEN valinta=2
select case valinta
case 1:
PRINT "Ahaa, olet koodaaja"
case 2:
PRINT "Ahaa, olet lifettäjä"
case else:
PRINT "Ahaa, et ole mitään"
end case
end case -> end select
kuulla, että joku muukin ajattelee samoin, kuin minä. Vanha kunnon basic se täälläkin on päällä. Lasken paljon matemaatiiisia kaavoja ja mikäs sen järkevämpää, kuin antaa koneen hoitaa laskeminen annettujen argumenttien perusteella. Ei siihen mitään ikkunointia tai hiirtä tarvita. Vanhan 166mhz kannettavankin laitoin tähän käyttöön. MS-Dos ja QuickBasic kiintolevyllä majailee.. Siihenkään mitään wintoosaa tarvii.
Ohjelmat ovat pieniä, eikä 1,2gb kiintolevytila tule omassa käytössäni loppumaan ikinä. Muutama kilotavu koodia ja ohjelma on käyttökelpoinen.
Qbasic ohjelmalistauksia voit käydä lukaisemassa osoitteessa:
http://www.ohjelmointiputka.net/koodit_naytaalue.php?kieli=QBasic
Tuolta saa kaikkea mukavaa omiin projekteihin ja paneppa kirjottaen itsekkin sinne, jos satut jonkun hyvän rutiinin keksimään.
viittaa kyllä jonkinlaiseen sairauteen kyllä toi qbasic-juttujen määrä tuolla!
myös luokitella sellainen ahdasmielisyys, jossa muiden tekemisiä ei kyetä ymmärtämään.
Se, että joku repii quickbasicilla sulavaa 3D animaatioita aikaiseksi, ei ole mielestäni sairasta vaan nerokkuutta.
Quickbasick koodaajat eivät millään lailla yritäkkään kilpailla muiden ohjelmointikieliä käyttävien kanssa. Pointti on siinä, että tehdään lähes mahdottomia juttuja kielellä jolla ei periaatteessa pitäisi siihen edes pystyä.
Samaa voidaan sanoa Assembly-koodaajista. He käyttävät C kieltä, mutta hekin ahtavat 64 kilotavuun todella vaikuttavaa 3D garfiikka, musiikkia, mielettömiä heijastuksia, tolkuttomia polygonimääriä ym. ym..
QuickBasic koodaus on tavallaan kevyempi muoto tästä. Kummassakaan ei ole taloudellisesti tai muuten järkeä.. Se on tapa ilmaista itseään ja näyttää omaa osaamistaan.
Muutamia introja löytyy osoitteesta :
http://optimus.demoscene.gr/mystuff/demos/mydemos.htm
Noistakin osa on koodattu QuickBasicilla. Ja huom. Nämä eivät ole edes sieltä parhaimmasta päästä.