Domino 9 und frühere Versionen > ND6: Entwicklung
Suche nach String???
gfunkus:
Hallo,
Ich schreibe gerade an einem Agenten welcher mir aus einer Mail verschiedene Informationen heraussucht.
Leider klappt das nicht bei allen Informationen. Bei meinem unten aufgeführten BSP. Source findet er Informationen nur für den Searchstring Name! Bei allen anderen keine Ergebnisse habt ihr eine Vermutung was ich falsch mache???
Set session = New NotesSession
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
If dc.Count = 0 Then
Messagebox "No document selected",, "No doc"
Exit Sub
End If
i=0
For i=i To 4
If i=0 Then searchString$="Mitgliedsname:"
If i=1 Then searchString$="Name:"
If i=2 Then searchString$="Straße: "
If i=3 Then searchString$="Ort: "
If i=4 Then searchString$="Land: "
If searchString$="" Then Exit Sub
Set doc = dc.GetFirstDocument
Set body = doc.GetFirstItem("Body")
Set rtnav = body.CreateNavigator
Set rtrange = body.CreateRange
'searchString$ = Inputbox$("Enter the search string", _
' "Search string")
If rtnav.FindFirstString(searchString$, _
RT_FIND_CASEINSENSITIVE) Then
Call rtrange.SetBegin(rtnav)
Messagebox rtrange.TextRun
' Messagebox rtrange.TextRun,, searchString$
Else
Messagebox searchString$,, "String not found"
End If
Next i
ata:
--- Zitat ---
i=0
For i=i To 4
--- Ende Zitat ---
... besser: For i = 0 to 4
--- Zitat ---If searchString$="" Then Exit Sub
--- Ende Zitat ---
... kannst du dir sparen,da du zuvor eindeutige Zuweisungen machst
--- Zitat ---Set doc = dc.GetFirstDocument
--- Ende Zitat ---
... warum 5 x das doc neu initialisieren?
--- Zitat ---Set body = doc.GetFirstItem("Body")
Set rtnav = body.CreateNavigator
--- Ende Zitat ---
... ich würde auf jeden Fall eine Validierung des Body einbauen, ist es existent und ist es vom Type Richtext - ansonsten gilt noch das selbe wie zuvor beim Dokument - warum 5 x initialisieren?
... du verwedest in deinem For-Next immer nur das erste Dokument, ansonsten
Set doc = dc.GetFirstDocument
Set body = doc.GetFirstItem("Body")
If Not body is Nothing Then
If body.Type = 1 Then
' # RichTextItem
Else
' # kein RichText-Feld
Exit Sub ' # oder Function
End If
Else
Exit Sub '# oder Function
End If
For i = 1 to dc.Count
' # ... dein Code
' # ....
Set doc = dc.GetNextDocument(doc)
Next
ata
gfunkus:
Nun gut, aber das Skript findet nur den Namen nicht die anderen im Dokument vorhandenenInformationen...???
gfunkus:
andere lösungsansätze sind natürluch gerne gesehen... ;-)
ata:
... du hast in deinem Script nur einen Durchlauf, kannst also nur den ersten Begriff finden - schau dir mein Posting bei For...Next an...
... hast du denn meine Änderungen umgesetzt?
ata
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln