Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

F: InStr-Zeichenfolge mit Wildcards/Platzhalter?

710 views
Skip to first unread message

Christian Freßdorf

unread,
Feb 14, 2003, 5:58:00 AM2/14/03
to
Hallo zusammen,

ich habe folgendes Problem, das ich (noch) nicht zur Zufriedenheit gelöst
bekommen habe:
In einem Makro wird ein String überprüft.
Dieser kann! den Aufbau
sFileName = "Doku_001_003_00A.doc"
haben.
Ich möchte jetzt diese Zahlentripel prüfen. Dazu dachte ich an eine Prüfung
nach dem Motto
"00?" also zwei Nullen plus beliebiger Ziffer.
Suchmuster in Word wäre
00^#

Leider bekomme ich das mit folgendem Ansatz nicht hin:

strLaufNummer="004" ' Liegt als String mit 3 Stellen vor, variiert

InStr(1, sFileName, String(3 - Len(CStr(CInt(strLaufNummer))), "0") & "^#")
Liedert immer 0, da der String wohl falsch (sprich exakt) als "00^#"
ausgewertet wird.
Kann mir da jemand auf die Sprünge helfen?

--
Gruß Christian
~~~~~~~~~~~~
Antworten nur in die NG - EMails werden ungelesen gelöscht!
http://www.mvps.org/word/FindHelp/Posting.htm
http://support.microsoft.com/default.aspx?scid=fh;DE;NGNetikette

Lutz Gentkow

unread,
Feb 14, 2003, 7:17:53 AM2/14/03
to
Hallo Christian,

an keiner Stelle wird erwähnt, daß die Instr-Funktion auch mit Wildcards
funktioniert. Daher wirst Du wohl das erste Zeichen nach der Doppel-Null
manuell untersuchen müssen:

sFileName = "Doku_001_013_00A.doc"
strLaufNummer = "004"
Pos = InStr(1, sFileName, String(3 - Len(CStr(CInt(strLaufNummer))),
"0"))
If Pos > 0 And InStr(1, "0123456789", Mid(sFileName, Pos + 2, 1)) > 0
Then
MsgBox "Muster vorhanden!"
End If

Viele Grüße vom Niederrhein

Lutz, MVP für Word/VBA

Alexandra von Cube

unread,
Feb 14, 2003, 7:43:12 AM2/14/03
to
Anderer Vorschlag:

Sub Ueberpruefung()
Dim sFilename As String
Dim strLaufNummer As String
Dim x
Dim y
Dim z

sFilename = "Doku_001_003_00A.doc"
strLaufNummer = "00A" ' Liegt als String mit 3 Stellen vor, variiert

On Error Resume Next
x = String(3 - Len(CStr(CInt(strLaufNummer))), "0")
y = x & Right(strLaufNummer, 1)
z = InStr(1, sFilename, y)
MsgBox z

End Sub


Kann man natuerlich in eine Zeile schreiben, aber ich finde es
uebersichtlicher, wenn man es auseinander fieselt ;-).

Ach ja, On Error Resume Next muss man natuerlich abfangen, damit keine
00Buchstaben-Kombinationen erlaubt sind, falls du dich mal bei
strLaufNummer vertust ;-).

Alexadnra

Klaus Linke

unread,
Feb 14, 2003, 11:29:57 AM2/14/03
to
Du könntest auch mal schauen, ob dir der "Like"-Operator weiterhilft.

Gruß,
Klaus

0 new messages