Ich möchte in einem RichtextFeld eine NewLine durch "nix" ersetzen. Der Code dafür ist ja recht einfach:
Dim rti As NotesRichTextItem
Dim rtiNav As NotesRichTextNavigator
Dim rtiRange As NotesRichTextRange
...
ForAll strTemp In varTemp
strReplaceFrom = strTemp
strReplaceTo = ""
Set rtiNav = rti.Createnavigator()
Call rtiNav.Findfirstelement(RTELEM_TYPE_TEXTPARAGRAPH)
Set rtiRange = rti.Createrange()
iReplaceCount = iReplaceCount + rtiRange.Findandreplace(strReplaceFrom, strReplaceTo, RT_REPL_ALL + RT_FIND_CASEINSENSITIVE)
End ForAll
varTemp enthält die Werte, die ich ersetzen will, unter anderem eben die neuen Zeilen...
Probiert habe ich schon:
varTemp(0) = Evaluate( "@NewLine" )(0) (natürlich geht das so nicht, der Code zeigt nur vereinfacht das Ergebnis)
varTemp(1) = Chr$(0)
varTemp(2) = Chr$(13) & Chr$(10)
varTemp(3) = Chr$(10)
varTemp(4) = Chr$(13)
aber nix davon funktioniert...
Dass der Code selbst richtig ist, sieht man daran,dass er funktioniert, wenn ich varTemp(5) = "xyz" eintrage und das im RichtextFeld vorkommt...
Jemand ne Idee, wie ich im RichtextFeld leerzeilen wegbekomme?
Thanx
@Martin: Ja, e ssind Absätze, wie ich mit diesem Code festgestellt habe:
Dim paraCount As Integer
Dim runCount As Integer
Dim rtrangePara As NotesRichTextRange
Dim rtrangeRun As NotesRichTextRange
Dim rtnavPara As NotesRichTextNavigator
Dim rtnavBody As NotesRichTextNavigator
Call rti.Update()
Call rti.Compact()
Set rtnavBody = rti.Createnavigator()
If Not rtnavBody.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH) Then
MessageBox "Body item does not contain text,",, _
"Error"
Exit Sub
End If
Set rtrangePara = rti.CreateRange
Set rtrangeRun = rti.CreateRange
Do
paraCount = paraCount + 1
runCount = 0
Call rtrangePara.SetBegin(rtnavBody)
Call rtrangePara.SetEnd(rtnavBody)
Set rtnavPara = rtrangePara.Navigator
REM Get each run in paragraph
REM Display it
Call rtnavPara.FindFirstElement(RTELEM_TYPE_TEXTRUN)
Do
runCount = runCount + 1
Call rtrangeRun.SetBegin(rtnavPara)
MessageBox rtrangeRun.TextRun,, _
"Paragraph " & paraCount & ", Run " & runCount
Loop While rtnavPara.FindNextElement(RTELEM_TYPE_TEXTRUN)
Loop While rtnavBody.FindNextElement(RTELEM_TYPE_TEXTPARAGRAPH)
@Roland: strReplaceTo = "" funktioniert in 8.5 ... Was nicht funktioniert (weder im strReplaceFrom noch im strReplaceTo) sind Newlines jeglicher Art...
Werde jetzt mit einem Workaround einfach alle Absätze durchlaufen und die entsprechenden einfach löschen...
Danke für die Anregungen