Discussion:
Anfängerfragen
(zu alt für eine Antwort)
Hans List
2011-05-31 09:37:25 UTC
Permalink
Hallo liebe Experten,

ich habe gestern ein Makro gebastelt, mit dem ich Listen mit
Wortpaaren (z. B. Englisch-Deutsch) 'anreichern' kann:

the man\tder Mann > The man\tDer Mann

Das funktioniert zwar recht gut, aber ich hätte trotzdem einige
Fragen:

1. Gibt es denn kein vbSpace?

2. Wie viel OR-Verknüpfungen kann ich aneinanderreihen?

3. Ich würde gerne nach mehr Zeichenketten suchen (dieser, dieses,
jener, jene usw.). Gibt es da nicht ein ökonomischeres Verfahren?

Besten Dank für Euere Hilfe!

Hans

strZoekDe = vbTab & "der "
strZoekHet = vbTab & "das "
strZoekEen = vbTab & "die "

Line Input #1, strRegel

If InStr((LCase(strRegel)), strZoekDe) Or
InStr((LCase(strRegel)), strZoekHet) Or InStr((LCase(strRegel)),
strZoekEen) Then
intTabPos = InStr(strRegel, vbTab)
strLinks = Left(strRegel, intTabPos)
strRechts = Right(strRegel, Len(strRegel) - intTabPos)
strBeginLinks = Left(strLinks, 1)
strBeginRechts = Left(strRechts, 1)
strEindeLinks = Right(strLinks, Len(strLinks) - 1)
strEindeRechts = Right(strRechts, Len(strRechts) - 1)
strLinksLower = LCase(strBeginLinks) & strEindeLinks
strRechtsLower = LCase(strBeginRechts) & strEindeRechts
strLinksUpper = UCase(strBeginLinks) & strEindeLinks
strRechtsUpper = UCase(strBeginRechts) & strEindeRechts

Print #2, strLinksLower & "!!!!" & strRechtsLower
Print #2, strLinksUpper & "!!!!" & strRechtsUpper

End If
W.Jahn
2011-05-31 21:39:46 UTC
Permalink
Post by Hans List
1. Gibt es denn kein vbSpace?
Nö.
Post by Hans List
2. Wie viel OR-Verknüpfungen kann ich aneinanderreihen?
Keine Ahnung. Brauchts aber auch garnicht. S.u.
Post by Hans List
3. Ich würde gerne nach mehr Zeichenketten suchen (dieser, dieses,
jener, jene usw.). Gibt es da nicht ein ökonomischeres Verfahren?
Hier z.B.:


Sub TestHans()
'Line Input #1, strRegel
'Print #2, hans(strRegel)
MsgBox hans("the man" & vbTab & "der Mann"), , "Hans"
End Sub

Function hans(strRegel)
Const SEP = "!!!!"
Dim aryTrigger, aryRegel
Dim strTrigger

aryTrigger = Split("der die das") 'jener jene jenes ...

For Each strTrigger In aryTrigger
If InStr(strRegel, strTrigger) > 0 Then
aryRegel = Split(strRegel, vbTab, 2)
hans = LCase(aryRegel(0)) & SEP & LCase(aryRegel(1) & vbCrLf) _
& CCase(aryRegel(0)) & SEP & CCase(aryRegel(1))
Exit Function
End If
Next strTrigger
hans = ""
End Function

Function CCase(strPar)
CCase = UCase(Left(strPar, 1)) & Mid(strPar, 2)
End Function



' Wolfram
Hans List
2011-06-01 19:42:40 UTC
Permalink
Hallo Wolfram,

besten Dank für Deine schöne Lösung!

Wäre ich nie drauf gekommen ...

Ich habe sie leicht abgewandelt:

If InStr(LCase(strRegel), strTrigger & " ") > 0 Then 'auch bei "Der
Mann" nicht jedoch bei "derselbe Mann"
aryRegel = Split(strRegel, vbTab, 2)
hans = LCase(aryRegel(0)) & vbTab & SEP & LCase(aryRegel(1) &
vbCrLf) _
& CCase(aryRegel(0)) & vbTab & SEP & CCase(aryRegel(1)) 'Tab
eingefügt

Ich wünsche Dir einen schönen Feiertag!

Hans

Lesen Sie weiter auf narkive:
Loading...