Tekst die tussen x en y staat bewerken

Status
Niet open voor verdere reacties.

famlam

Gebruiker
Lid geworden
15 okt 2008
Berichten
416
Hoe kun je dingen uitvoeren met tekst die tussen twee tekens/strings staat?
Zoals (bijvoorbeeld) in html: als de tekst tussen <b>en </b> staat dan zou deze vet moeten worden. Hoe kun je dit doen? (en dan bedoel ik niet het vet maken van tekst, maar het controleren of de tekst tussen twee andere stukken tekst instaat)?
 
je hebt de extreem handige functie instr(). Deze returnt de waarde van een bepaald teken. Als je deze nou eens uitvoert, op de '<' en de '>'. Je krijgt dan x en y. Met de mid() functie, welke een string retourneert tussen 2 waardes, kan je dan dus je tag ophalen.

Er zijn geloof ik wel betere/snellere manieren, mischien een mooie API of iets dergelijks, maar van dit weet ik zeker dat het werkt/bestaat.


:thumb:
 
Ik weet niet of je heel veel moet filteren uit een HTML , maar met LINQ is dit een handige methode...


Code:
        Dim XElement As XElement

        Using StringReader As New System.IO.StringReader("<b>dit is de tekst tussen de bold elementen</b>")
            XElement = XElement.Load(StringReader)
        End Using


        MsgBox(XElement.Value())
 
je hebt de extreem handige functie instr(). Deze returnt de waarde van een bepaald teken. Als je deze nou eens uitvoert, op de '<' en de '>'. Je krijgt dan x en y. Met de mid() functie, welke een string retourneert tussen 2 waardes, kan je dan dus je tag ophalen.

Hoe zou dit dan moeten???
Want (daarom ga ik nu voor deze methode) in html heb je ook speciale tekens als &#+asciiwaarde+; .
dim a as integer = instr("&#",";")
dim b as string = mid(?????)
textbox1.text = textbox1.text.replace("&#" + b + ";", chr(b))

met als resultaat dat (bijvoorbeeld) &#+270; wordt veranderd in Ď (zonder de +, maar anders kan ik het niet tonen)

@Pizaria: ook bedankt. Jouw methode is erg handig voor de htmltags. Alleen hiervoor kan ik die van jou niet gebruiken. (of ik moet iets fout gedaan hebben)

Klein vraagje erbij: weet iemand hoe de codering waar en &nbsp; bijhoren heet? Ik dacht eerst iso 8859, maar het kan ook ISO 8879 zijn, of nog een andere
 
Laatst bewerkt:
Mijn versie zou gewoon moeten werken op vb2008. Mocht je hier niet uitkomen kan je ook eventueel nog RegularExpressions kunnen gebruiken om te filteren. Maar dat is een vak apart.

Maar goed , ieder z'n eigen methode.

Wat Vegras bedoelt is het volgende.

Code:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim str As String = "<b>dit is de tekst tussen de bold elementen</b>"

        str = GetValue(str, "<b>", "</b>")

    End Sub

    Public Function GetValue(ByVal Str As String, ByVal BeginTag As String, ByVal EndTag As String) As String

        Dim StartPos As Integer = InStr(Str, BeginTag) + BeginTag.Length
        Dim EndPos As Integer = InStr(Str, EndTag)

        Return Str.Substring(StartPos - 1, EndPos - StartPos)

    End Function
 
Maar ik kom nog even terug op de xElement..

Code:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim str As String = "<b>de tekst tussen elementen</b>"

        Dim XElement As XElement

        Using StringReader As New System.IO.StringReader(str)
            XElement = XElement.Load(StringReader)
        End Using

        If XElement.Name.ToString = "b" Then
            MsgBox("variabele zou vetgedrukt moeten zijn")
        Else
            MsgBox("het element is geen <b></b>")
        End If

    End Sub

Hier herkent de Xelement.Name de naam van het element, als deze 'b' is dan .. doe iets..
is ie geen <b> </b> dan MsgBox("het element is geen <b></b>")




Antwoord op je andere vraag is : ISO 8859-1 .. is standaard HTML format.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan