Domino 9 und frühere Versionen > ND6: Entwicklung

E-Mails nach Inhalten parsen

<< < (4/5) > >>

immanuel:
Hallo Zusammen

Ein Mail kann so aussehen:

--- Code: ---TransaktionsID: 1111111
Zusatzparameter:

Spende für: Zweck

Zahlungsart: Visa
Zahlungsnummer: 1111111
Transaktionsbestätigung für Spendenbetrag: 200
Währung: CHF
ESR Member:
ESR Referenznummer:
ESR Nummer:
Spender wünscht keine Werbung. true

***********************************************
Adresse:
Herr
Nachname Vorname
Strasse
PLZ Ort

***********************************************
--- Ende Code ---

Gut wäre, wenn das Parsen auf der Seite des Servers geschehen würde, wie z.B. über einen Agenten, weil die Clients R5 und R6 sind.

LG Manuel

Semeaphoros:
Also, um das zu parsen, wenn es denn so stabil ist, wie Du das schilderst, braucht es nicht wirklich regex. R5 oder R6 spielt da auch fast keine Rolle, und dass man das auf dem Server platziert ist so, wie ich das oben vorgeschlagen habe, eigentlich auch gegeben, ein clientseitiges Parsen wäre eigentlich schon eher komplizierter.

koehlerbv:
In diesem Falle - wenn immer diese Formulardaten genauso vorkommen - ganz einfach:

- Text aus Body ziehen
- Zeilenweise aufdröseln
- dabei nach den Kennern suchen wie "Spendenbetrag"
- an der dann erwarteten Stelle den Wert extrahieren (incl. Prüfungen / Konvertierungen)

Du weisst ja faktisch schon, wo oder wonach die Dich interessierenden Daten stehen.

HTH,
Bernhard

TMC:
Genau, das erscheint mir jetzt auch eher simpel.

Mit item.Text auslesen.

Dann bietet sich IMHO an, das ganze in eine Liste zu überführen.
Dadurch hat man schön Zugriff auf die einzelnen Werte, und zieht sich das raus, was man braucht.

eknori:
habs mal schnell exemplarisch für die Währung zusammengebraten

Sub Click(Source As Button)
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim col As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim rtItem As Variant
   Dim plaintext As Variant
   Dim retVal As String
   Dim key As String
   Dim pos As Integer
   
   Set db = s.CurrentDatabase
   Set col = db.UnprocessedDocuments
   Set doc = col.GetFirstDocument
   Set rtitem = doc.GetFirstItem( "Body" )
   If ( rtitem.Type = RICHTEXT ) Then
      plainText = rtitem.GetFormattedText( False, 0 )
   End If
   key = "Währung:"
   
   'Msgbox plaintext
   
   
   pos=Instr(1, plaintext, Key)
   'Msgbox pos
   retval = Mid(plaintext,pos + Len(key) + 1 ,3)
   Msgbox retval
End Sub

Ist noch nicht dynamisch, da beim MID noch mit einem  festen Wert gearbeitet wird (3)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln