Suchen mit Alternativen...

03/06/2009 - 16:43 von Dieter Strassner | Report spam
Hallo NG'ler,

Z.Zt habe ich eine Programmlogik, die mir in einem Textbereich nach drei
verschiedenen Dateiendungen durchsucht:

With Bereich ' Bereich = RangeObject aus WORD-2000
.Find.ClearFormatting
.Find.MatchWildcards = True
.Find.MatchCase = False
.Find.MatchWholeWord = False
.Find.MatchSoundsLike = False
.Find.MatchAllWordForms = False
.Find.Forward = True
Select Case EndungCount
Case 1: .Find.Text = "(\@Filename=*.rtf)"
Case 2: .Find.Text = "(\@Filename=*.doc)"
Case 3: .Find.Text = "(\@Filename=*.xml)"
End Select
[..]
End With

Jetzt kann es aber passieren, dass "@Filename=" am Anfang des Textbereiches
steht und ".rtf" irgendwo ganz am Schluss des Textes. Findet der erste
Durchlauf (mit EndungCount=1) statt, dann würde mir als markierter Text der
komplette Bereich von Anfang bis Ende zurückgegeben. Zwischendrin steht aber
vllt. noch ein ".doc" und ein oder mehrere "@Filename=". Das würde ich dann
gar nicht mehr finden, da der gefundene Text sofort ersetzt wird. :-(

Kann ich irgendwie die WORD-Suchfunktion so bestücken, das ".rtf" ".doc"
und ".xml" gleichzeitig gesucht werden?
In der WORD-Hilfe gibt es zwar Beispiele die in Richtung regulàre Ausdrucke
gehen, aber immer nur mit einzelnen Zeichen, was mir hier nicht richtig
weiterhift.

Oder anders gefragt: Kann ich obige drei Suchbegriffe in einem String mit
einem "ODER-Trennzeichen" nach .Find.Text übergeben?

Jetzt schon mal ein Danke für zielführende Tipps! (oder für einer
ernüchternden Antwort)


Viele Grüße

Dieter


Rückfragen bitte nur in die Newsgroup!

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz
 

Lesen sie die antworten

#1 Thomas Gahler
03/06/2009 - 17:23 | Warnen spam
Hallo Dieter

Sorry ich bin leider kein .Find-Typ :-( doch zuerst mal die Frage, ist dein
Dokument formatiert oder mit Tabellen bestückt oder handelt es sich nur um
eine Textdatei, die in Word bearbeitet wird?

- Falls eine Textdatei, dann empfehle ich dir, den ganzen Text in einen
String zu saugen. Den String wie gewünscht bearbeiten und am Schluss am
Stück wieder in das Dokument zurück schreiben. Wàre das ein Ansatz?


Der mit dem ODER könnte funktionieren, denn die Wildcard-Suche bringt die
wildesten Sachen hin.

Hier mal lesen
- Finding and replacing characters using wildcards
http://word.mvps.org/faqs/general/U...dcards.htm

Diesen nicht vergessen
- Flush bad karma from Word's find facility after an unsuccessful wildcard
search
http://word.mvps.org/faqs/macrosvba/FlushFR.htm

und hier in der NG suchen (Suchworte: "Klaus Linke" und "Platzhalterzeichen
verwenden" oder "MatchWildcards")


Thomas Gahler
MVP für Word
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)

Ähnliche fragen