Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Kirosanan sensurointi

Megant92 [06.08.2005 08:35:37]

#

Juups,otin qbasic esille(pitkästä aikaa, olen ohjelmoinut C++:lla)ja korjasin vähän tuota(mutta on se 100% minun).
Ehkä vähän edistyneenpi kirosanan etsijä kuin että se vain huomaisi sen.

DECLARE SUB tarkista (kirosana$, sensurointi)
DIM SHARED lause$  'globaali muuttuja
SCREEN 13       'täysruutu
SCREEN 0        'tekstitila
DO
 INPUT "Kysytäänkö sensuroidaanko 1=ei 2=kyllä"; sensurointi
 CLS
LOOP UNTIL sensurointi = 1 OR sensurointi = 2'odotetaan etta sensurointi on 1 tai 2
INPUT "Mistä tiedostosta luetaan(tyhjä jos ei)(jos ei tarkenninta automaattinen.txt)"; luku$
IF luku$ = "" THEN
 INPUT "Etsittävä lause:", lause$
ELSE
 IF NOT INSTR(luku$, ".") THEN luku$ = luku$ + ".txt"   'katsoo onko päätettä ja lukee
 filenum = FREEFILE                   'seuraava vapaa tiedosto numero
 OPEN luku$ FOR INPUT AS #filenum     'avataan lukemista varten
 l = LOF(filenum)                     'tiedoston pituus
 lause$ = INPUT$(l, filenum)          'lue kaikki tiedostosta
 CLOSE #filenum
END IF
tarkista "vittu", sensurointi         'käy kirosanat läpi subeilla
tarkista "helvetti", sensurointi
tarkista "saatana", sensurointi
tarkista "paska", sensurointi
tarkista "jumalauta", sensurointi
tarkista "perkele", sensurointi
PRINT "Lause: "; lause$
INPUT "Tallentaanko(jos kirjoita nimi)"; kirjoitus$
IF kirjoitus$ <> "" THEN                             'kirjoittaa tiedostoon
 OPEN kirjoitus$ FOR OUTPUT AS #1
 PRINT #1, lause$
 CLOSE #1
END IF
SLEEP

SUB tarkista (kirosana$, sensurointi)
 lause2$ = LCASE$(lause$)                       'pienet kirjaimet
 lause3$ = lause2$
 FOR i = 1 TO LEN(lause$)               'kaydaan lapi kaikki kirjaimet
  IF INSTR(lause3$, kirosana$) THEN      'katsoo onko kirosana
   kohta = INSTR(lause3$, kirosana$)    'katsoo missä kohdassa on kirosana
   kohta2 = INSTR(lause2$, kirosana$)
   lause3$ = (RIGHT$(lause$, LEN(lause$) - kohta - (LEN(kirosana$) - 2)))  'poistaa kohdan tutkimuksista
   kerta = kerta + 1
   IF sensurointi = 2 THEN   'onko sensuroinnin kysely päällä
    CLS
    COLOR 7    'valkonen colori
    bufferi = 0 'nollataan kohta bufferi
    LOCATE 1, 1
    PRINT LEFT$(lause$, kohta - 1) 'tulostetaan kirjaimet ennen havaittua kirosanaa
    bufferi = LEN(LEFT$(lause$, kohta - 1)) 'paivita buhveri
    LOCATE 1, bufferi + 1: 'kohta-bufferi paikalleen
    COLOR 20: PRINT MID$(lause$, kohta, LEN(kirosana$))'valkkyva punanen vari ja tulostetaan kirosana
    bufferi = bufferi + LEN(MID$(lause$, kohta, LEN(kirosana$)))'paivita bufferi
    LOCATE 1, bufferi + 1: 'kohta bufferi paikoilleen
    COLOR 7: PRINT RIGHT$(lause$, LEN(lause$) - ((LEN(kirosana$) - 1 + kohta2)))'tulostetaan merkit kirosanan jalkeen
    INPUT "Sensuroidaanko 1=ei"; kysymys
    IF kysymys = 1 THEN GOTO a'jos ei
   END IF
   lause$ = (LEFT$(lause$, kohta + 1) + STRING$(LEN(kirosana$) - 3, 42) + (RIGHT$(lause$, LEN(lause$) - kohta - (LEN(kirosana$) - 2))))'sensuroi
  END IF
a:
 NEXT
END SUB

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta