Autor Thema: NotesRichtextItem.FindAndReplace für @NewLine: schon mal jemand gemacht?  (Gelesen 3524 mal)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
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

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)

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
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Sinds vielleicht Absätze und nicht Newlines?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
@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) 

@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
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Zitat
@Roland: strReplaceTo = "" funktioniert in 8.5 ...
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...
Sofern es Absätze sind... Ansonsten bleibt wohl nur was in Richtung DXL-Ex/Import / C-Api

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Die Grundidee war gut... Nur dass das löschen eines Absatzes leider eine leere Zeile übrig lässt... Ich drehe mich also im Kreis... Argh...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Also auf die zu löschenden Abschnitte kannst du mit den (beschränkten) LS-Richtext-Klassen zugreifen?

Wenn es um die Anzeige geht, kannst du evtl. "Schweinereien" wie Schriftgröße = 1 / weisse Schrift machen. (HideFormel kann man glaub ich nicht setzen)

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz