Avatar billede mini-me Nybegynder
30. oktober 2005 - 17:33 Der er 5 kommentarer og
1 løsning

Hvordan finder jeg teksten?

Hej,

Jeg har en streng som eks. kunne se sådan her ud:

Vi er samlet her i dag <b>for</b> at spise en stor <b>burger</b>. Dette er meget <b>Spændende</b> ik?

Hvordan undersøger jeg hvilke ord der står imellem <b></b> ??
Avatar billede plx Nybegynder
30. oktober 2005 - 17:43 #1
Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "<b>([\s\S]+?)</b>"

Set matches = re.Execute(streng)

For Each m In matches
    Response.Write m.SubMatches(0)
    Response.Write "<br>"
Next
Avatar billede mini-me Nybegynder
30. oktober 2005 - 17:48 #2
Ikke helt, da jeg i skal have dem til at kalde en funktion som de bliver fundet...

for hver <b>xxx1</b> kaldes en funktionen xxx1, som skal afvikles direkte i min kode... hvis jeg gør som dit eksempel har jeg blot en liste med de funktioner som skal kaldes, og de bliver så først kaldt til sidst, de skal kaldes løbende...
Avatar billede mini-me Nybegynder
31. oktober 2005 - 21:18 #3
Okay jeg prøver lige igen, måske min problemformulering ikke er god nok.


Jeg henter en streng fra et felt i min database, strengen indeholder en masse tekst.

I denne tekst er der ind imelllem nogle <b>tekst</b>, det der står mellem <b></b> er en funktion som jeg har inkl. i en fil, som jeg ønsker at kalde.

Derfor vil jeg nu løbe gennem min streng, finde ud af hvad det er for nogle funktioner som skal kaldes, og fortløbende kalde funktionerne.

Problemet med plx's svar er at her bliver mine funktioner lagt i orden og bliver afviklet før udskriften af min streng. Jeg ønsker at den skal gøre følgende


Hej xxx... xx <b>KALD Funktion TEST</B> aksjdksajd .... <b>Kald funktion2</b>asdasdkajdakdas dasd

Hvis der skal flere point til så ;-)
Avatar billede plx Nybegynder
31. oktober 2005 - 22:21 #4
str = "hello <b>func1</b> world <b>func2</b> sådan?"

Sub func1()
    Response.Write "func1 kaldt"
End Sub

Sub func2()
    Response.Write "func2 kaldt"
End Sub


Set re = New RegExp
re.Global = True
re.IgnoreCase = True
re.Pattern = "<b>([\s\S]+?)</b>"

Set matches = re.Execute(str)

oldindex = 0

For Each m In matches
    ' udskriv tekst før match
    Response.Write Mid(str, oldindex+1, m.FirstIndex-oldindex)

    ' kald funktion
    Execute(m.SubMatches(0))

    oldindex = m.FirstIndex + m.Length
Next

' udskriv alt efter sidste match
Response.Write Mid(str, oldindex+1)
Avatar billede mini-me Nybegynder
31. oktober 2005 - 22:36 #5
Det er rimelig genialt ,) Tak for det.. smid et svar du fortjener point
Avatar billede mini-me Nybegynder
03. december 2005 - 14:16 #6
Jeg lukker.. .da der ingen svar er kommet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester