sawMedlem sedan mars 20011 880 inlägg Vore tacksam för lite hjälp.
regEx.Pattern = "%%1"
Set Matches = regEx.Execute(mytext)
For each match1 in Matches
mytext = regEx.Replace(mytext, match1,VBCrlf + "\n\r" + match1 + "\n\r")
Next
Alltså när regex hittar "%%1" då ville jag ha en radbrytning framför och en bakom. Jag får inga felmedelande, men ingenting händer heller.
Om jag skriver ut match1 så ser jag att den hittar rätt, men någonting är galet.
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Fungerar "\n\r" i VB-script? Jag använder enbart VbCrLf och/eller VbTab.
sawMedlem sedan mars 20011 880 inlägg Försöker jag så här:
mytext = regEx.Replace(mytext, match1,VBCrlf + VbCrLf + match1 + VBCrlf + VbCrLf)
så fungerar det inte heller... :l
sawMedlem sedan mars 20011 880 inlägg Tyvärr, så enkelt var det inte.
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Prova att ersätta med en annan text än Match1 istället.
Heter det inte Match.value förresten?
http://www.devguru.com/Technologies/vbscript/quickref/regexp.html
sawMedlem sedan mars 20011 880 inlägg Nu så lyckades jag att fixa det:
Set RegEx = New RegExp
RegEx.Pattern = "%%"
RegEx.Global = True
RegEx.Multiline = True
Set Matches = RegEx.Execute(mytext)
For each Match in Matches
mytext=Replace(mytext,Match,VBCrlf & Match)
Next
Men ack den som ropar hej...
Nu är det som så, att i den textfilen, så får inte första raden vara tom, den måste börja med %%
Som det nu är så blir det ju en radbrytning först.
Jag försöker med
if Match.FirstIndex > 1 then
mytext=Replace(mytext,Match,VBCrlf & Match)
end if
..men det reagerar den inte för.
Puuh det här var knepigt värre.
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Njae, Firstindex gäller inte som du tror, det är en position; det finns inte Second/Third...TwelfthIndex.
This property returns the position, counted from the left with the first position being numbered zero, in a string where a match was made.
http://www.devguru.com/Technologies/vbscript/quickref/match.html
Det enklaste är att lägga en räknare som hoppar över första varvet, if i>1 then skriv ut.
sawMedlem sedan mars 20011 880 inlägg Det här ser ut att bli en långkörare, men jag får inte ihop det.
Det slutar med att den "tömmer" textfilen.
Dim RegEx,Matches,sMytext
Set RegEx = New RegExp
RegEx.Pattern = "%%"
RegEx.Global = True
RegEx.Multiline = True
Set Matches = RegEx.Execute(mytext)
Dim i
i = 0
For each Match in Matches
if i > 1 then
mytext=mytext & Replace(mytext,Match,VBCrlf & Match)
else
end if
i=i +1
mytext=mytext
Next
Vad gör jag för fel? :r
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Ja, jag vet inte, men ska detta vara så?
mytext=**mytext & [b/]Replace(mytext,Match,VBCrlf & Match)
Dessutom behöver du inte else ... end if och sätta mytext till sig själv igen.
Testa med en enklare variant av din fil och skriv ut vad du har för text före och efter och se när/var det blir fel, är mitt generella råd.**
sawMedlem sedan mars 20011 880 inlägg LÖST.
Efter mycket krabbande och på fel spår, så löste det sig:
Set RegEx = New RegExp
regEx.Pattern = "(%%)"
RegEx.Global = True
Set Matches = RegEx.Execute(mytext)
mytext = regex.replace(mytext, VbCrLf & "$1")
mytext=MID(mytext,3)
Nu fick jag också bort den första tomma raden.
Tack för all hjälp