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 :)
Sun pitää ettiä tuon halutun tekstin alkamis- ja loppumiskohta jollain, vaikka InStr-funktiolla, ja napata sitten noiden välistä teksti tuolla Mid-funktiolla.
sisalto1 = Mid(sisalto, 1, InStr(sisalto, "<") - 1) sisalto2 = Mid(sisalto, InStr(sisalto, ">") + 1) sisalto = Mid(sisalto2, 1, InStr(sisalto2, "<") - 1)
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.
Sain tuon toimimaan, kayttaja-4976 =)
Mutta taidan ottaa tuon laaksosen koodin, kun sitä voi käyttää siististi.
Kiitos :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.