Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Join ja Split [ VB ]

D.J-Dew [13.03.2005 21:43:27]

#

Mikä neuvoksi, jokaisesta asiakkaasta pitäisi tallentaa tekstitiedostoon asiakkan nimi, osoite ja id-numero. Pystyn kyllä tallentamaan tiedot tiedostoon esim. "kalle|||katukuja5|||1034", mutta ongelma on siinä kun tiedot pitäisi hakea tiedostosta. Saan haettua jokaisen rivin tiedostosta, mutta ne pitäisi vielä pilkkoa "|||"-merkkijonon kohdalta. Sitten tiedot pitäisi vielä tulostaa näytölle. Split- ja Join-funktioita en voi käyttää, koska käytössäni on Visual Basic 4.0.

Metabolix [13.03.2005 22:01:23]

#

No yksi tapa on ainakin For-silmukka ja Mid. merkki kerrallaan eteenpäin, kun tulee |, katsotaan, ovatko seuraavatkin niitä, ja jos ovat, otetaan Mid:llä palanen ja merkitään muistiin, mihin tämä loppuu eli mistä seuraava pala alkaa. Se on purkkatekniikka, tiedän. Joku varmasti keksii jonkin helpomman.

Antti Laaksonen [13.03.2005 22:07:04]

#

Tähän tehtävään sopii hyvin InStr-funktio, joka ilmoittaa merkkijonon paikan toisessa merkkijonossa. Merkkijonosta luetaan silmukassa aina seuraavan erotinmerkin paikka, ja tiedot saadaan selville Mid-funktiolla. Silmukan päättyessä näytetään vielä viimeisen erotinmerkin jälkeiset tiedot.

Dim tiedot As String
Dim kohta As Integer, uusi As Integer

tiedot = "eka|||toka|||kolmas|||neljäs"
kohta = 1

Do
    uusi = InStr(kohta, tiedot, "|||")
    If uusi = 0 Then
        MsgBox Mid(tiedot, kohta)
        Exit Do
    Else
        MsgBox Mid(tiedot, kohta, uusi - kohta)
        kohta = uusi + 3 ' 3 = erottimen pituus
    End If
Loop

Yleensäkin jos valmista merkkijonofunktiota tiettyyn tarkoitukseen ei ole, semmoisen voi aina laatia itse.

nomic [13.03.2005 22:37:32]

#

Miksi et käyttäisi tietueita?

Rippaus Antti Laaksosen Vb-Oppaan 8-Osasta. Pienten muutosten kera:

Type HTiedot
   Nimi As String
   Osoite As String
   IdNumero as Integer
End Type

'aliohjelmaan:

Dim tiedot As HTiedot
tiedot.nimi = "Matti Meikäläinen"
tiedot.Osoite = "Koodaajan tie 6"
tiedot.IdOsoite = 1200

Open app.path & "tiedosto.dat" For Binary As #1
Put #1, ,tiedot
Close #1

Vai onko kaikkien asiakkaitten tiedot samassa teksti-tiedostossa?

D.J-Dew [13.03.2005 22:45:18]

#

On.

tesmu [13.03.2005 23:36:01]

#

tietysti voit käyttää myös ini tiedostoa joka on huomattavasti helpompaa

https://www.ohjelmointiputka.net/keskustelu/1997-ini-tiedostot

esakom [14.03.2005 11:00:02]

#

Jos ei ole mitään esteitä siirtyä käyttämään oikeaa tietokantaa, niin suosittelen. Tai miksei tuosta nomicin samplesta voisi vain laittaa tietueet taulukkoon?

Vastaus

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

Tietoa sivustosta