Frågan 6 mars 2004 20:00 #1 Ja, hur hittar jag ett speciellt värde i en text. Som typ..
<id>8</id>
Genom att 8 står mellan id-taggarna, så vill jag att detta värde skall användas till en funktion så att det blir som detta..
funktion(textvarde)
I variabeln textvärde vill jag ha den siffra som står i mellan de två ID-taggarna. I detta fall siffran 8.
Hur gör jag?
S Sebbe Medlem sedan jan. 2003 2 285 inlägg Du kan använda RegExp:
strText = "Hejsan... <id>8</id> hoppsan..."
With New RegExp
.IgnoreCase = True
.Pattern = "<id>.+</id>"
For Each objMatch In .Execute(strText)
strFoo = Funktion(Mid(objMatch.Value, 5, Len(objMatch.Value) - 9))
Next
End With
Response.Write(strFoo)
sebbe, tack! Nu får jag äntligen ut värdet.. men..
Eftersom det är annan text jag också vill ha ut.. i ditt exempel vill jag ha ut
"Hejsan... (vad som blir av id 8) hoppsan..."
Så en replace vore fint av <id>8</id> istället för bara skriva ut vad som blir av <id>8</id>.
Annars fungerar din kod bra :)
S Sebbe Medlem sedan jan. 2003 2 285 inlägg Nu förstår jag inte riktigt vad du menar, men kanske något sånt här?
strText = "Hejsan... <id>8</id> hoppsan..."
With New RegExp
.IgnoreCase = True
.Pattern = "<id>(.+)</id>"
strText = .Replace(strText, "($1)")
End With
Då kommer det istället för <id>8</id> stå (8), sen kan du ju byta ut den mot vad du vill.
Blev lite fel.
Content = innehållet i filen
showforumtopic är en funktion, som i detta fall skall skicka vidare 8:an till funktionen.. funktionen i sig fungerar..
Felmeddelande:
Microsoft VBScript runtime error '800a01c2'
Wrong number of arguments or invalid property assignment: 'replace'
Den kod jag försökte köra var din med lite modifiering:
With New RegExp
.IgnoreCase = True
.Pattern = "<id>.+</id>"
strFoo = .Replace(content, "($1)", showforumtopic("($1)"))
End With
content = strFoo
S Sebbe Medlem sedan jan. 2003 2 285 inlägg With New RegExp
.IgnoreCase = True
.Pattern = "<id>(.+)</id>"
content = .Replace(content, "$1")
content = showforumtopic(content)
End With
Sen behöver du inte den understa raden i din kod heller. :)