Domino 9 und frühere Versionen > ND6: Entwicklung
NotesRichtextNavigator und RTRange
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