Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Merkkijonosta tekstiä tiettyyn kohtaan asti

Quirzo [15.08.2006 18:53:52]

#

Eli, kun lataan netistä sivun koodin inetillä muuttujaan, tiedän, että miten voin hakea tietyn kohdan ja tietyn pituisen. Tämä toimii esim. numeroluvulla joka on aina saman pituinen.
Mutta entäs, kun pitää hakea esim. sivulta nyt soitetun kappaleen nimi? Se kun on aina eri pituinen...

Eli ajatellaan, että minulla on muuttuja sisalto, joka sisaltaa: "Kappaleen nimi: <td>The Rasmus - Päläpälä</td>"
Nyt minun pitäisi saada tekstiä <td> -kohdasta eteenpäin:

sisalto = Mid(sisalto, InStr(sisalto, "Kappaleen nimi: <td>") + 20, 20)

Eli tämä koodi hakee sisalto -muuttujasta dataa kohdasta Kappaleen nimi: <td> + 20 (Luku heitetty päästä) aina 20 merkkiä eteenpäin.
Miten voin saada sen hakemaan niin, että hakee aina </td> kohtaan asti?
Kiitos jo etukäteen :)

Blaze [15.08.2006 19:16:35]

#

Sun pitää ettiä tuon halutun tekstin alkamis- ja loppumiskohta jollain, vaikka InStr-funktiolla, ja napata sitten noiden välistä teksti tuolla Mid-funktiolla.

kayttaja-4976 [15.08.2006 19:21:24]

#

sisalto1 = Mid(sisalto, 1, InStr(sisalto, "<") - 1)
sisalto2 = Mid(sisalto, InStr(sisalto, ">") + 1)
sisalto = Mid(sisalto2, 1, InStr(sisalto2, "<") - 1)

Antti Laaksonen [22.08.2006 15:01:09]

#

Vaikkapa näin:

Function HaeValista(teksti As String, v1 As String, v2 As String) As String
    Dim alku As Integer, loppu As Integer
    alku = InStr(teksti, v1) + Len(v1)
    loppu = InStr(alku, teksti, v2)
    If alku = Len(v1) Or loppu = 0 Then Exit Function
    HaeValista = Mid(teksti, alku, loppu - alku)
End Function

Private Sub Form_Load()
    Dim teksti As String

    teksti = "Muita juttuja <br> Kappaleen nimi: <td>testi</td> Koiran nimi: <td>musti</td>"

    MsgBox HaeValista(teksti, "Kappaleen nimi: <td>", "</td>")
End Sub

Tätä funktiota voi käyttää kaikissa vastaavissa tilanteissa.

Quirzo [22.08.2006 16:48:19]

#

Sain tuon toimimaan, kayttaja-4976 =)
Mutta taidan ottaa tuon laaksosen koodin, kun sitä voi käyttää siististi.
Kiitos :)

Vastaus

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

Tietoa sivustosta