Domino 9 und frühere Versionen > ND6: Entwicklung

Suche nach String???

(1/3) > >>

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