Domino 9 und frühere Versionen > ND6: Entwicklung

NotesRichtextNavigator und RTRange

<< < (6/6)

Roalf:
ich traue mich fast nicht diese Code zu Posten....so schwachsinnig und umständlich mutet er an. Aber er ist der einzige der zu dem von mir gewünschten Ergebniss führte:


also, erste Schleife:
.
.
.
   Set rtnav = body.CreateNavigator
   crlfcount = 0
   pos = 0
   If rtnav.FindFirstString(CRLF , RT_FIND_CASEINSENSITIVE) Then
      Do
         crlfcount = crlfcount + 1
      Loop   While rtnav.FindNextString(CRLF , RT_FIND_CASEINSENSITIVE)
   End If
.
.
.

diese holt nur die anzahl der stellen die es zu ersetzten gilt.
das eigendliche ersetzen erfolgt dann über eine doppelte schleife (da es kein FindNthString gibt) :
.
.


   For i = 0 To crlfcount -1
      If rtnav.FindFirstString(CRLF , RT_FIND_CASEINSENSITIVE) Then
         While pos < i
            Call rtnav.FindNextString(CRLF , RT_FIND_CASEINSENSITIVE)
            pos = pos + 1
         Wend
      End If
      Call body.BeginInsert( rtnav,True)
      Call body.APpendText(param)
      Call body.EndInsert   
   Next
.
.
.


----
da ich diese Teile aus einem größeren Zusammenhang kopiert habe ,sind sie in dieser Form nicht getestet. Ich hoffe aber das sie das Prinzip zeigen.
Nämlich das es für jede Position immer wieder mit einem FindFirstString beginnt...und dann mit FindNextString zum Punkt gehangelt wird. (da ja, wie ich oben anmerkte, FindNextString nur noch "habe fertig" zurückliefert wenn vorher ein CHR(13) eingefügt wurde, obwohl es ggf. noch mehr zu finden gäbe,

Thomas Schulte:
Wobei man damit jetzt wieder beim manuellen Hangeln angelangt wäre. Das hatten wir doch schon.
Hmm, wenn man die beiden Methoden kombinieren könnte. So nach dem Motto alles was einfach ist mit FindAndReplace und den Rest dann mit der Methode von Roalf.

eknori:
@Roalf:

Danke für die Code Snippets; werde ich testen und sehen, wie ich das in den bestehenden Code zu integrieren.

Habe mir überlegt, beim Stamp Documents Feld noch ein paar Varianten einzubauen:

test0 | Hallo Welt  ( auch multiValue möglich mit Hallo;Welt;Tolles;Wetter;heute )
+test1 | Hallo Welt
#test2 | 1
test3 | <<FieldName>>


test0 | Hallo Welt:

wie ReplaceItemValue; erstellt das Feld, wenn es noch nicht vorhanden ist und fügt den String "Hallo Welt" in das Feld ein.


+test1 | Hallo Welt

Hängt den String "Hallo Welt" an das bestehende Feld an


#test2 | 1

addiert den Wert 1 zu dem bestehenden Wert in Feld test2


test3 | <<FieldName>>

Hole einen Wert auf dem Feld FIELDNAME und schreibt diesen in Feld test3

wobei auch Kombinationen möglich sind; wie z.B.

#test3 | <<FIELDNAME>>

addiere den Wert aus FIELDNAME zu Feld test3

Keine Ahnung, ob man so etwas braucht, aber besser man hat, als man hätte  ;D

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln