Hallo Zardoz! Schönen Dank! Ich hab es ausprobiert und jetzt funktioniert die Textersetzung, jedoch nur einmal. (also nur von einem einzigen Wort werden die Klammern ersetzt)
Ich habe leider keine Ahnung, wie man die Funktion durchlaufen lassen kann, bis keine Klammern mehr gefunden werden. Hast Du da eine Idee?
Mein bisheriger Code:
Option Explicit
Dim mText As String
Dim mTextlaenge As String
Dim i As Integer
Dim i2 As Integer
Dim mTextbuffer As String
Dim mPosition1 As Integer
Dim mPosition2 As Integer
Function FunktionUebersetzen(mText As String)
'[text] Nur Klammern entfernen
'[+text] Klammer un +-Zeichen entfernen
'[-text] Klammer mitsamt Inhalt entfernen
mTextlaenge = Len(mText)
For i = 1 To mTextlaenge
If Mid(mText, i, 2) = "[-" Then
mPosition1 = i
mTextbuffer = Mid(mText, 1, mPosition1 - 1)
For i2 = i To mTextlaenge
If Mid(mText, i2, 1) = "]" Then
mPosition2 = i2
'Inhalt der Klammer entfernen
mTextbuffer = mTextbuffer & Mid(mText, mPosition1 + (mPosition2 - _
mPosition1) + 1, mTextlaenge - mPosition2 + 1)
End If
Next i2
End If
Next i
For i = 1 To mTextlaenge
If Mid(mText, i, 2) = "[+" Then
mPosition1 = i
mTextbuffer = Mid(mText, 1, mPosition1 - 1)
For i2 = i To mTextlaenge
If Mid(mText, i2, 1) = "]" Then
mPosition2 = i2
'Erstmal das "[+" Zeichen entfernen
mTextbuffer = mTextbuffer & Mid(mText, mPosition1 + 2, mPosition2 - _
mPosition1 - 2)
'Das "]" Zeichen entfernen
mTextbuffer = mTextbuffer & Mid(mText, mPosition2 + 1, mTextlaenge - _
mPosition2)
End If
Next i2
End If
Next i
For i = 1 To mTextlaenge
If Mid(mText, i, 1) = "[" Then
mPosition1 = i
mTextbuffer = Mid(mText, 1, mPosition1 - 1)
For i2 = i To mTextlaenge
If Mid(mText, i2, 1) = "]" Then
mPosition2 = i2
'Erstmal das "[" Zeichen entfernen
mTextbuffer = mTextbuffer & Mid(mText, mPosition1 + 1, mPosition2 - _
mPosition1 - 1)
'Das "]" Zeichen entfernen
mTextbuffer = mTextbuffer & Mid(mText, mPosition2 + 1, mTextlaenge - _
mPosition2)
End If
Next i2
End If
Next i
FunktionUebersetzen = mTextbuffer
End Function
Private Sub btnUebersetzen_Click()
txtZiel.Text = FunktionUebersetzen(txtQuelle.Text)
End Sub
Beitrag wurde zuletzt am 13.05.10 um 23:15:46 editiert. |