Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Merkkijonon jakaminen (QB)

Dude [22.08.2007 19:30:57]

#

Mun pitäis teherä yhteen ohojelmaan semmoonen että se jakaa merkkijonon aina välilyönnin kohoralta(ja välilyönnit pois). Sen siis pitäis jakaa COMMAND$ osiin.

Antti Laaksonen [22.08.2007 20:19:36]

#

Tässä yksi ratkaisu:

param$ = COMMAND$ + " "
WHILE INSTR(param$, " ")
   PRINT LEFT$(param$, INSTR(param$, " "))
   param$ = MID$(param$, INSTR(param$, " ") + 1)
WEND

Parametrilistasta poistetaan aina ensimmäisenä oleva parametri. Funktio INSTR etsii ensimmäisen välilyönnin paikan, LEFT$ erottaa ensimmäisen parametrin ja MID$ poistaa ensimmäisen parametrin sekä sitä seuraavan välilyönnin. Alussa parametrilistan loppuun lisätään välilyönti käsittelyn helpottamiseksi.

Wukkopi [23.08.2007 07:31:38]

#

Toinen tapa ratkaista tämä voisi olla for-lause joka käytetään koko merkkijonon läpi ja tallennetaan saadut syötteet tauluun esim:

DIM taulu(1 TO 100) AS STRING ' eri parametreja voi olla yht 100 kappaletta.
param$ = COMMAND$
c = 1

FOR i = 1 TO LEN(param$)
  buffer$ = MID$(param$, i, 1) ' oliko se nyt (String, offset, length)?
  IF buffer$ <> " " THEN
    taulu(c) = taulu(c) + buffer$
  ELSE
    c = c + 1
  END IF
NEXT i

' ja nyt voimme katsella komentoja
PRINT taulu(2)

Omani on paljonkin pitempi kuin Laaksosen, mutta minä itse ymmärrän tekemäni koodin paremmin. En ole sitten varma onko juuri tuo pätkä toimiva(korkeintaan pari muokkausta niin kyllä se siitä sitten), mutta idean siitä saa.

Dude [24.08.2007 15:45:16]

#

Molemmat toimii mutta Wukkopin on parempi ku se vääntää ne taulukkoon. Pitää varmaa muuttaa subiks. Ny mä saan yhyren ohojelman valamiiks. Kiitos.

Vastaus

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

Tietoa sivustosta