Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Replace ja Explode

Sivun loppuun

juhaz [08.05.2005 01:43:40]

#

quickbasiciin kaksi juttua eli visual basic 6:n replace-komentoa vastaavan -ja php:n explodea vastaavan komennon... Olisi käyttöä niille, mutta itse en osaa tehdä niitä...

Harrastelija [08.05.2005 09:31:54]

#

Eiköhän täältä löytyis sulle kyseisestä aiheesta..?

hunajavohveli [08.05.2005 09:42:13]

#

Replacen saa kätevästi kehittämällä kaksi funktiota, joista toinen poistaa tietoa merkkijonosta, ja toinen lisää. Kannattaa yrittää ensin itse, mutta minulla on kyllä tuollainen toisella koneella, joten voin sen jossain välissä sieltä hakea.

sqwiik [08.05.2005 10:32:57]

#

Replace: https://www.ohjelmointiputka.net/koodivinkit/23396-qb-strreplace
Explode: https://www.ohjelmointiputka.net/koodivinkit/24325-qb-split-funktio

hunajavohveli [08.05.2005 10:52:14]

#

Tuossa replacessa on yksi ongelma, joka selviää tarkemmin siihen lähettämästäni kommentista. Mutta tuon saa kyllä korjattua muuttamalla lukuindeksiä aina, kun korvataan jokin pätkä tekstistä.

sqwiik [08.05.2005 11:30:20]

#

Hmmm. Oikeassa olet, vohveli. Kirjoitinpa sitten itse tuollaisen, jossa ko. ongelmaa ei esiinny:

FUNCTION replace$ (rivi AS STRING, mika AS STRING, miksi AS STRING)
DIM x1 AS INTEGER, x2 AS INTEGER, ll AS INTEGER, loyt AS INTEGER
DIM uusi AS STRING
  ll = LEN(mika): uusi = "": x2 = 1: loyt = 0
  FOR x1 = 1 TO LEN(rivi) - ll + 1
    IF MID$(rivi, x2, ll) = mika THEN
      loyt = 1
      uusi = uusi + miksi
      x2 = x2 + ll - 1
    ELSE
      uusi = uusi + MID$(rivi, x2, 1)
    END IF
    x2 = x2 + 1
  NEXT x1
  IF ll < LEN(miksi) OR loyt = 0 THEN uusi = uusi + RIGHT$(rivi, ll - 1)
  replace$ = uusi
END FUNCTION

juhaz [08.05.2005 15:58:34]

#

Oho... en huomannutkaan, että tuolta löytyi jo valmiiksi vinkit... Kiitoksia kuitenkin... varsinkin tuosta sqwiikin kirjoittamasta koodista :)

miiro [13.05.2005 17:01:26]

#

No, sqwiik: pistäppä tuo koodivinkkeihin vaikkapa nimellä strrreplace 2; varmasti pääsee koska on parempi versio kuin tuo alkuperäinen


Sivun alkuun

Vastaus

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

Tietoa sivustosta