Kuinka voi korvata kirjoitettua tekstiä laittamalla tilalle vaikka randomina arvotun numeron?
Selvempää selitystä vaaditaan, kiitos.
Kieli? VB:stä löytyy Replace-funktio, QB:llä taidat päästä leikkimään loopeilla ja Mid:llä.
Mikähän kieli, ja minne tuo teksti on kirjoitettu? Korvataanko koko teksti vai vain osa siitä?
Edit: Kannattaisi tosiaan minunkin painaa refreshiä ennen kuin postaan :D
tosiofftopic: Joo tosiaan. pari minuuttii sitten unohdit kanssa painaa refressiä.
VB:
Replace(text1.text,"moi","no moro") 'text1.text, sieltä etitään, ja moi sieltä text1 ja moi korvataan no morolla
Nannohiiri kirjoitti:
Kuinka voi korvata kirjoitettua tekstiä laittamalla tilalle vaikka randomina arvotun numeron?
Tuosta saa kyllä vain sen käsityksen, että kaikki teksti korvataan jollain tietyllä arvotulla numerolla. Jos numeroa et osaa arpoa, niin se tehdään:
Int(Rnd * n) + 1
Ja tekstin tilalle se laitetaan sijoitusoperaattorilla eli "="
Eikun koko teksti korvattaisiin koko ajan. Eli jos yrittää kirjoittaa vaikka "Terve" niin voisi tulla "kfewa" tai ihan mitä kirjaimia tahansa. Eli semmonen ärsyttävä toiminto että kun yrittää kirjottaa niin koko teksti korvataan randomina arvotuilla kiraimilla. Pystyykö vb:ssä sellasta tekemään?
Eli sen sijaan, että laitettaisiin se, mitä painettiin, niin laitettaisiinkin jotakin muuta? Aina, kun tekstiä lisätään, poista lisätty osa (viimeinen kirjain) ja lisää jotakin muuta. Näppäinpainalluksen tunnistaminen tuleekin sitten kotiläksyksi, kuten myös toteutus siihen, miten saa random-arvon kirjaimeksi.
Toimiikohan se nopeasti?
Kyllä varmasti toimii.
Mitä tarkoitat, nopeasti? Eiköhän se pysty muutaman sataa tuhatta merkkiä muuttamaan sekuntissa. Tietysti seuraavaksi tulee vastaan Windowsin nopeus reagoida näppäimiin ja käsitellä viestit.
Tekstilaatikkoon tuleva kirjain kannattaa muuttaa numeroksi jo ennen sen kirjoittamista. Sitten ei tarvitse pyyhkiä vanhaa pois. Tässä esimerkissä kaikki merkit, joiden ASCII-koodi on 48 tai suurempi, muutetaan sattumanvaraisiksi numeroiksi. Pienempiä koodeja ei muuteta sen takia, että esimerkiksi Backspace-nappi toimii. Numeroiden ASCII-koodit ovat 48 - 57.
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii >= 48 Then KeyAscii = 48 + Int(Rnd * 10) End If End Sub
Tästä on kyllä jo puhuttu...
Aihe on jo aika vanha, joten et voi enää vastata siihen.