Tässä oma ehdotukseni INPUTin korvaajaksi. Tein sen mahdollimman simppeliksi käyttää.
- Kutsutaan yhtä helposti kuin alkuperäinen: KYSELE Merkkijono$, maksimipituus.
- Tottelee LOCATE ja COLOR-käskyjä.
- Ei nollaa muuttujan alkuperäistä arvoa, vaan sekin tulee muokattavaksi.
- Maksimi pituuden voi määrittää.
- Toimii kaikissa näyttötiloissa.
- Myös jonkinlainen merkkien suodatus toiminee.
'Esimerkki käytöstä: PRINT "Kirjoita nimesi : "; nimi$="Jaakko" 'Asetetaan oletukseksi nimi Jaakko KYSELE nimi$, 20 PRINT PRINT "Terve "; nimi$
SUB kysele (vastaus$, pituus) 'Input-funktion korvaaja, joka ei pyyhi muuttujan aikaisempaa sisältöä ja 'ja jossa syötteen pituuden voi rajoittaa alku$ = vastaus$ y = CSRLIN x = POS(0) IF x + pituus > 79 THEN pituus = 79 - x WHILE a$ <> CHR$(13) a$ = INKEY$ LOCATE y, x IF TIMER * 4 - INT(TIMER * 4) > .5 THEN PRINT alku$; "_"; loppu$; " "; ELSE PRINT alku$; " "; loppu$; " "; IF LEN(alku$ + loppu$) < pituus AND LEN(a$) = 1 THEN IF ASC(a$) > 31 THEN alku$ = alku$ + a$ IF LEN(alku$) > 0 AND a$ = CHR$(8) THEN alku$ = LEFT$(alku$, LEN(alku$) - 1) IF LEN(loppu$) > 0 AND a$ = CHR$(0) + CHR$(83) THEN loppu$ = RIGHT$(loppu$, LEN(loppu$) - 1) IF LEN(alku$) > 0 AND a$ = CHR$(0) + CHR$(75) THEN loppu$ = RIGHT$(alku$, 1) + loppu$: alku$ = LEFT$(alku$, LEN(alku$) - 1) IF LEN(loppu$) > 0 AND a$ = CHR$(0) + CHR$(77) THEN alku$ = alku$ + LEFT$(loppu$, 1): loppu$ = RIGHT$(loppu$, LEN(loppu$) - 1) IF a$ = CHR$(0) + CHR$(71) THEN loppu$ = alku$ + loppu$: alku$ = "" IF a$ = CHR$(0) + CHR$(79) THEN alku$ = alku$ + loppu$: loppu$ = "" WEND LOCATE y, x: PRINT alku$; loppu$; " "; vastaus$ = alku$ + loppu$ END SUB
Jaa-a. Näyttää ihan toimivaltakin, mutta onkos tästä jotain hyötyä? ;)
Jos vaikka halutaan vaan muuttaa jonkun muuttujan arvoa, eikä kirjoittaa sitä kokonaan uudestaan.
Onpa muuten pedon luku tällä koodivinkillä :P
Juu :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.