Hallo Stephan, hallo andere Leser im Forum,
Meister Pitonyak in allen Ehren, aber zur Lösung meines Problems konnte er diesmal nichts beitragen, denn dieses Problem beruhte ausschließlich auf meiner Unerfahrenheit im Umgang mit relativ komplexen Strukturen. Der Code läuft jetzt, und für alle, die es interessiert (und bitte nur für diese, ich will sonst niemanden belästigen, das Problem ist ja gelöst), gebe ich jetzt die komplette Do-Loop-Schleife wieder:
Code: Alles auswählen
REM Nun müssen die geschweiften Klammern vorgezogen werden.
oSuche = oDoc1.createSearchDescriptor()
With oSuche
.SearchRegularExpression = false
.SearchBackwards = false
.setSearchString("}")
End With
oSuchErg = oDoc1.findFirst(oSuche)
Do while Not isNull(oSuchErg)
oSuchErg.gotoEndOfParagraph(false) 'ans Absatzende
oSuche = oDoc1.createSearchDescriptor()
With oSuche
.SearchRegularExpression = true
.SearchBackwards = true
.setSearchString("\{[^\{]{1,}\}") 'Letztes Vorkommen von "{...}" im Absatz
End With
oSuchErg = oDoc1.findNext(oSuchErg.End, oSuche)
If Not isNull(oSuchErg) Then
oSuchErg.goLeft(1, true)
sStr = oSuchErg.string
sStr2 = Mid(sStr, 1, 1) 'Zeichen vor "{...}" in sStr2 festhalten
oSuchErg.goRight(1, true)
If sStr2 <> "}" Then
sStr = oSuchErg.string
oSuchErg.setString("")
oSuche = oDoc1.createSearchDescriptor()
With oSuche
.SearchRegularExpression = true
.SearchBackwards = true
.setSearchString("[:digit:]{2}\.[:digit:]{2}\.[:digit:]{2}\t[:digit:]{1,2}\.\t")
End With
oSuchErg = oDoc1.findNext(oSuchErg.End, oSuche)
oSuchErg.collapseToEnd()
oSuchErg.setString(sStr) 'sStr am Anfang des Absatzes auslesen
oSuche = oDoc1.createSearchDescriptor()
With oSuche
.SearchRegularExpression = false
.SearchBackwards = false
.setSearchString("}")
End With
oSuchErg = oDoc1.findNext(oSuchErg.End, oSuche) 'nächstes Vorkommen von "}" suchen
else
oSucherg.gotoEndOfParagraph(false)
oSuche = oDoc1.createSearchDescriptor()
With oSuche
.SearchRegularExpression = false
.SearchBackwards = false
.setSearchString("}")
End With
oSuchErg = oDoc1.findNext(oSuchErg.End, oSuche) 'nächstes Vorkommen von "}" suchen
End If
End If
Loop
Es war also mein Problem, ich durfte am Ende der Schleife nicht noch einmal nach "}" suchen lassen. Stattdessen musste diese Suche am Ende der beiden Zweige der If-Else-Abfrage stehen. - Ein Denker, den ich sehr schätze und von dem ich vielleicht mehr verstehe als vom Programmieren, hat einmal gesagt:
Es ist schon ein großer und nötiger Beweis der Klugheit oder Einsicht, zu wissen, was man vernünftiger Weise fragen solle. Denn, wenn die Frage an sich ungereimt ist, und unnötige Antworten verlangt, so hat sie, außer der Beschämung dessen, der sie aufwirft, bisweilen noch den Nachteil, den unbehutsamen Anhörer derselben zu ungereimten Antworten zu verleiten, und den belachenswerten Anblick zu geben, daß einer (wie die Alten sagten) den Bock melkt, der andre ein Sieb unterhält.
Ich bin der unvernünftige Frager und nehme die Beschämung auf mich! Ansonsten: Großes Kompliment diesem Forum und Dank an alle, die auch für unvernünftige Frager eine Antwort zu finden versuchen!
Mit freundlichen Grüßen Mr.Ed