@eknori: nicht schlecht der Code.
Mein Ansatz wäre zwar ein anderer, aber das ist ja immer Geschmackssache...
Hier mein Senf zu dem Würstchen...
Sub Initialize
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim body As NotesRichtextItem
Dim plainText As String
Dim valArr As Variant
Dim TransaktionsID As String, summe As Double
Set db = ses.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
Set body = doc.GetFirstItem( "Body" )
plainText = body.GetFormattedText( False , 0 )
'- ggf. chr 10 durch chr 13 ersetzen, so dass wir ein einheitliches Bild bekommen
plainText = Replace( plaintext, Chr$( 10 ) , Chr$( 13 ) )
valArr = Fulltrim( Split( plainText , Chr$( 13 ) ) )
'- dieses Array können wir nun nach den verschiedenen Werten durchparsen
TransaktionsID = GetLineVal( valArr , "TransaktionsID: " , "" )
Summe = GetLineVal( valArr , "Transaktionsbestätigung für Spendenbetrag: " , "" )
End Sub
Function GetLineVal( valArr As Variant , startText As String, cutText As String ) As Variant
'- startText: Der Text, nach dem gesucht wird, cutText: Ein Text, der gegebenenfalls am Ende der Wertes abgeschnitten wird
Dim tmpVal As String
Dim i As Integer, pos As Integer
For i = 0 To Ubound( valArr )
tmpVal = Strright( valArr( i ) , startText )
If tmpVal <> "" Then
If cutText <> "" Then
tmpVal = Strleft( tmpVal , cutText )
End If
'- beim ersten gefundenen Wert wird abgebrochen
GetLineVal = tmpVal
Exit Function
End If
Next
'- Der Wert wurde bis hier nicht gefunden: also ist er nicht vorhanden...
GetLineVal = ""
End Function
Gruß
Tode