Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Merkkijonon lukeminen toiseen merkkijonoon? (QB)

Stide [10.07.2009 17:36:14]

#

Siis tekstin lukeminen merkkijonosta toiseen merkkijonoon.
Eli onko mitään tapaa/keinoa saada luettua jostain tiedostosta vaikkapa merkkien (: ja ;) tai minkä tahansa merkkien välinen teksti/sana/lause toiseen merkkijonoon?

Tähän tapaan:

**esim.txt
alku;
print :Moi kaikki; <-- Tuo "Moi kaikki" pitäisi lukea...
loppu;

tai näin:

**esim.txt
alku;
print "Moi kaikki"; <-- ...sama juttu
loppu;

Kaikkialta olen jo yrittänyt hakea (tai no en ihan kaikkialta sillä siihen menisi koko elämä :D)

Grez [10.07.2009 17:48:17]

#

instr palastaa tietyn merkin sijainnin ja Mid$ palauttaa halutusta merkistä halutun määrän merkkejä eteenpäin.

Stide [10.07.2009 18:21:48]

#

Eli tällaisella koodilla yritän:

DIM i AS INTEGER
DIM p AS INTEGER
DIM pit AS INTEGER
DIM rivi AS STRING

OPEN "esim.txt" FOR INPUT AS #1
DO WHILE NOT EOF(1)
	LINE INPUT #1, rivi
			IF rivi = "print " THEN
			i = INSTR(rivi, ":")
			p = INSTR(rivi, ";")
			pit = p - i
			PRINT MID$(rivi, i, p)
			END IF
    LOOP
CLOSE #1

Grez [10.07.2009 19:30:01]

#

Stide kirjoitti:

Eli tällaisella koodilla yritän:

IF rivi = "print " THEN

Jos tiedostossa on rivi "print ", niin silloinhan ko. rivillä ei ole : eikä ; merkkejä

Kokeile korvata tuo esim

IF LEFT$(rivi,6) = "print " THEN

tai jos se ei välttämättä ole rivin alussa niin esim.

IF INSTR(1,rivi,"print ")>0 THEN

Tai jos sen pitää olla alussa, mutta edessä voi olla välilyöntejä:

IF LEFT$(LTRIM$(rivi),6) = "print " THEN

Stide [10.07.2009 19:45:20]

#

Kiitos,nyt toimii. Vika oli tosiaan tuolla rivillä.

Vastaus

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

Tietoa sivustosta