Domino 9 und frühere Versionen > ND8: Entwicklung

NotesRichtextItem.FindAndReplace für @NewLine: schon mal jemand gemacht?

(1/2) > >>

Tode:
Ich möchte in einem RichtextFeld eine NewLine durch "nix" ersetzen. Der Code dafür ist ja recht einfach:


--- Code: --- 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
--- Ende Code ---

varTemp enthält die Werte, die ich ersetzen will, unter anderem eben die neuen Zeilen...

Probiert habe ich schon:


--- Code: ---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)
--- Ende Code ---

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

m3:
Sinds vielleicht Absätze und nicht Newlines?

pram:
Diesen Bug kennst du?
http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/bdff6627a404b47f85256f3c0036e328?OpenDocument
EDIT: Was ich damit sagen wollte, strReplaceTo darf nicht "" sein

Tode:
@Martin: Ja, e ssind Absätze, wie ich mit diesem Code festgestellt habe:


--- Code: ---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)
--- Ende Code ---

@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

pram:

--- Zitat ---@Roland: strReplaceTo = "" funktioniert in 8.5 ...

--- Ende Zitat ---
Ach, wurde das inzwischen gefixed... gut zu wissen  ;)


--- Zitat ---Werde jetzt mit einem Workaround einfach alle Absätze durchlaufen und die entsprechenden einfach löschen...

--- Ende Zitat ---
Sofern es Absätze sind... Ansonsten bleibt wohl nur was in Richtung DXL-Ex/Import / C-Api

Gruß
Roland

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln