webForumDet fria alternativet

Leta efter text i textbox

3 svar · 233 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Jag måste ta reda på var någonstans taggen finns i en HTML-fil, som är innladda i Text1.text.

Om taggen enbart är skrivet som , då har jag inga problem, problem är om
det står någonting mera.
Jag försöker så här:

s = "<body>" 

l = InStr(LCase(Text1.text), s) 
   If l = 0 Then ' 1st spot is string is 1. 0 means "not found" 
       MsgBox "Hittade ingenting." 
   Else 
       MsgBox "Hittat texten" 
       Text1.SetFocus 
       Text1.SelStart = l - 1 ' 1st spot for selected text is numbered 0 
       Text1.SelLength = Len(s) - 1 
   End If

Om jag skriver så här, så är det inga problem, men om htmlfilen innehåller
"<BODY OnLoad osv> då hittas den inte."

Jag försökte att göra så här:

s = "<body" & "*" & ">"

Men det tycker han inte om. Han hittar ingenting. Hur bör jag lösa detta?

När sedan har hittat taggen, så skulle jag vilja, att efter taggen så skulle det vara ett radbyte, och sedan ville jag få in några rader, ung som nedan:

Dim strNewText As String, s As String, l As Long 
With Text1 
strNewText = "<!--#include file ="common-lib.asp"-->" & vbCrLf    
   .SelText = vbNewLine & strNewText 
End With

Hur bör jag göra detta?

Nexus86Medlem sedan okt. 20023 030 inlägg
#2

Med RegExp.

  Dim regxp as Object, oMatch as Object, MatchC as Object
    Set regxp = CreateObject("VBScript.RegExp")
    regxp.IgnoreCase = True
    
    regxp.Pattern = "<body([^>]?)*>"
    Set MatchC = regxp.Execute(Text1.Text)
    
    Set oMatch = MatchC(0)
    Text1.SelStart = oMatch.FirstIndex
    Text1.SelLength = oMatch.Length

    Text1.SelText = vbCrLf & "<!--#include file=""common-lib.asp""-->" & vbCrLf
sawMedlem sedan mars 20011 880 inlägg
#3

Hej Nexus86
Det fungerade NÄSTAN perfekt.
Felet är att den tar bort bodytagen, vilket den inte skulle.
Den skulle skapa en ny rad under, och där lägga in includefilen.
Hur bör man göra det??
[REDIGERAT]
Så dumt av mig, det var ju bara att lägga till oMatch

Tusen tack för din hjälp.

Nexus86Medlem sedan okt. 20023 030 inlägg
#4

Liten förtydelse av koden. Detta byter bara ut första body-taggen i texten. Om du behöver hitta fler, använd följande:

  Dim regxp As Object
    Set regxp = CreateObject("VBScript.RegExp")
    regxp.IgnoreCase = True
    regxp.Global = True
    
    regxp.Pattern = "<body([^>]?)*>"
    Text1.Text = regxp.Replace(Text1.Text, vbCrLf & "<!--#include file=""common-lib.asp""-->" & vbCrLf)

R// Denna metod är snabbare eftersom den inte innehåller något grafiskt.

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)