rma hat geschrieben:Hi
derartiges habe ich auch in OOo lange probiert. Die Ersetzung der Teile des Suchausdrucks geht m.E. nicht.
Hallo rma,
habe dieses Problem auch zur Kenntnis nehmen müssen. Ich habe in Word ein Makro verwendet, das Leerschritte durch geschützte - ersetzt. Folgende Kombinationen habe ich ua verwendet:
Suchstring: lit.[ ]@([a-zA-Z])
Ersetzstring: lit.^g\1
Suchstring: lit[ ]@([a-zA-Z])
Ersetzstring: lit^g\1
Das erste Problem dabei ist, dass zwar nach ASCII-Codes gesucht werden kann (z.B.: \x0020 für den Leerschritt), aber im Ersetzfeld ein derartiger Code gerade nicht funktioniert (bis jetzt konnte ich auch noch nicht eruieren, wie der Code für den geschützten Leerschritt Chr(160) lautet).
Das zweite Problem sind die Klammern; sie können zwar im Suchfeld verwendet werden, aber im Ersetzfeld kann darauf nicht referenziert werden.
Folgendes Script habe ich erstellt:
Code: Alles auswählen
Sub leerzeichen()
Dim suchstr As String
Dim ersetzstr As String
Dim datei As String
Dim SearchDesc As Object
Dim objDoc As Object
objDoc = ThisComponent
Replace = objDoc.createReplaceDescriptor
datei = "D:\DATEN\regex.txt"
datei = ConvertToURL(datei)
Open datei For Input As #1
Do While Not EOF(1)
Line Input #1, suchstr
If suchstr = "<ENDE>" Then GoTo Ende
Line Input #1, ersetzstr
With Replace
.SearchRegularExpression = True
.SearchAll = True
.SearchString = suchstr
.ReplaceString = ersetzstr
End With
objDoc.replaceAll(Replace)
Loop
Ende:
Close #1
End Sub
In der regex-Datei stehen die Such-Ersetz-Kombinationen.
Habe ich vielleicht doch etwas übersehen; falls Ihr einen Ausweg kennt, lasst es mich bitte wissen.
Liebe Grüße aus Wien
ManfredB