Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Taulukko funktion paluuarvona

trinit [22.02.2003 18:50:04]

#

Ympäristönä Visual Basic 6.

Mitenkähän onnistuisi tehdä funktio joka palauttaa taulukon paluuarvonaan? Tarkoitus olisi tehdä funktio joka tekee jotain ja palauttaa taulukon jonka kokoa ei tiedetä ennen funktion kutsua. Kuvitteellisen funktion toiminta voisi olla esimerkiksi:

-kutsutaan funktiota joka saa parametriksi merkkijonon

- funktio laskee kuinka monta "a" kirjainta merkkijonosta löytyy ja asettaa sen taulukon 0-alkioon

- lasketaan kuinka monta "b" kirjainta löytyy ja asetetaan se taulukon 1-alkioon

- jne jne kunnes merkkijonosta ei löydy enää uusia laskemattomia kirjaimia

- funktio palauttaa taulukon alkioineen paluuarvonaan

Eli funktiota kutsuttaisiin

Dim mjono As String
mjono = "Tästä pitäisi laskea kirjaimet"
maarat = LaskeKirjaimet(mjono)

' Nyt maarat(0) alkiossa olisi a-kirjaimien määrä
' ja maarat(1) alkiossa b-kirjaimien määrä jne.

VB:n helpeistä en mielestäni löytänyt sopivaa ohjetta tuollaiseen. Olisin kiitollinen, jos joku osaisi edes kertoa mistä löytyisi kunnollinen ohje funktion tekoon mikäli ei täältä löydy tarvittavaa tietotaitoa.

Antti Laaksonen [22.02.2003 20:40:01]

#

Seuraavasta osoitteesta näyttäisi löytyvän erilaisia tapoja asian toteuttamiseen. Kokeilin viestiketjun ensimmäistä ratkaisua, ja se ainakin toimi hyvin.

http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_20126729.html

edit: Yksi tapa on siis määrittää funktion tyypiksi Variant, muodostaa sen sisällä taulukko ja palauttaa tämä taulukko.

trinit [22.02.2003 21:50:59]

#

Löysinkin Microsoftin MSDN:stä yhden esimerkin jossa palautettiin taulukko funktion paluuarvona. Sitä soveltamalla sainkin tehtyä itselleni PHP:stä tutun explode() funktion tyylisen funktion. Tuo explode():han palautti tietystä merkkijonosta merkkijonotaulukon, joka oli pilkottu tietyllä erotinmerkkinä.

Voisinkin oikeastaan laittaa funktion koodivinkkeihin jos joku muu kaipaa sellaista.

edit: Nyt funktio löytyy koodivinkeistäkin ylläpidon tarkistuksen jälkeen.

Antti Laaksonen [22.02.2003 22:04:29]

#

Itsekin ajattelin yrittää tehdä tuollaisen funktion joskus - kunnes huomasin, että sellainen on jo lisätty Visual Basiciin. :) Ilmeisesti versiossa 6.0. Split-niminen funktio tekee juuri saman kuin PHP:n explode, paitsi että parametrit annetaan eri järjestyksessä. Splitin vastafunktio taas on Join (PHP:ssa implode).

Mutta kyllä sinun funktiosi aivan hyvin koodivinkkeihin sopii, hyviä koodiesimerkkejä ei koskaan ole liikaa.

trinit [22.02.2003 22:14:42]

#

lainaus:

Itsekin ajattelin yrittää tehdä tuollaisen funktion joskus - kunnes huomasin, että sellainen on jo lisätty Visual Basiciin. :) Ilmeisesti versiossa 6.0. Split-niminen funktio tekee juuri saman kuin PHP:n explode, paitsi että parametrit annetaan eri järjestyksessä. Splitin vastafunktio taas on Join (PHP:ssa implode).

Ai niinpäs olikin :) Olisi pitänyt tutkia hieman tarkemmin helppejä... No tulipahan tuo taulukon palautus ainakin opeteltua :)

Vastaus

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

Tietoa sivustosta