Toon posts:

[Domino] Replace enters door <BR>

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ok, ik heb dus google gebombardeerd met zoekopdrachten, het forum op notes.net het vuur aan de schenen gelegd, maar blijkbaar weet niemand hoe dit moet:
code:
1
2
3
4
5
Function replaceNewlines(Byval sourceStr As String) As String
  Dim tempVar As Variant, tempAr(0) As String
  tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |"; @NewLine ;"<BR>")|)
  replaceNewlines = Cstr(tempVar(0))
End Function

De string waarvan ik de enters wil vervangen door <BR>'s (sourceStr) is gevuld met een Rich Text veld. Nu heeft Lotus Notes/Domino Designer een aantal manieren om een enter aan te duiden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@NewLine -=> tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |"; @NewLine ;"<BR>")|) -=> doet niks

@Char(0) -=> tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |"; @Char(0) ;"<BR>")|) -=> doet niks

@Char(13) -=> tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |"; @Char(13) ;"<BR>")|) -=> doet niks

\n -=> tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |"; \n ;"<BR>")|) -=> doet niks

\n -=> tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |";"| & "\n" & |";"<BR>")|) -=> vervangt alle N's! :?

\n -=> tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |";"| & "\\n" & |";"<BR>")|) -=> doet weer niks

VC_SEP_NEWLINE -=> tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |";"| & VC_SEP_NEWLINE & |";"<BR>")|) -=> doet niks

VC_SEP_NEWLINE -=> tempVar = Evaluate(|@ReplaceSubstring("| & SourceStr & |"; VC_SEP_NEWLINE ;"<BR>")|) -=> doet ook niks

De replace-functie op zich werkt wel. Wanneer ik ipv een NewLine-achtig iets een string invul, dan werkt ie wel.
Je begrijpt dat ik nu bijna richting raam loop om eruit te springen! :'( Dit lijkt me wel zo'n ongelooflijke basisfunctie... |:(

  • chaozz
  • Registratie: Juni 2000
  • Laatst online: 23-08 22:57
ik gebruik zelf deze replace, rechtstreeks geCOPY/PASTE van de Microsoft-site:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function Replace(sIn As String, sFind As String, _
        sReplace As String, Optional nStart As Long = 1, _
        Optional nCount As Long = -1, Optional bCompare As _
        VbCompareMethod = vbBinaryCompare) As String

        Dim nC As Long, nPos As Integer, sOut As String
        sOut = sIn
        nPos = InStr(nStart, sOut, sFind, bCompare)
        If nPos = 0 Then GoTo EndFn:
        Do
          nC = nC + 1
          sOut = Left(sOut, nPos - 1) & sReplace & _
             Mid(sOut, nPos + Len(sFind))
          If nCount <> -1 And nC >= nCount Then Exit Do
          nPos = InStr(nStart, sOut, sFind, bCompare)
        Loop While nPos > 0
EndFn:
        Replace = sOut
    End Function

probeer die eens...

chaozz.nl | RetroGameCouch


Verwijderd

Topicstarter
Ik had ondertussen zelf ook een dergelijke functie geschreven (handmatig replacen dan maar; chr(13) door <BR>).

Deze gaf Enters waar ze hoorden te zitten, maar ook eentje waar 'ie *niet* hoort te zitten.

Ik heb dus deze functie geprobeerd (wel aangepast, omdat LotusScript<>VB), maar die vertoont dezelfde symptomen.

Ik vermoed dat er dus rare dingen worden opgeslagen in dat Lotus Notes Rich Text veld. Ik heb zelfs de hele tekst opnieuw getypt, en weer hetzelfde resultaat.

Heb ik een paar enters bovenaan gezet (worden mooi geconverteerd naar <BR>s), maar dan komt er een Enter op een *andere* plaats, waar ie niet hoort.

*ARGH* Advies: begin NOOIT met Notes als je een afstudeeropdracht moet doen |:(

  • Defspace
  • Registratie: Mei 2000
  • Laatst online: 27-08 11:17

Defspace

Administrator

Ik zou eens proberen om chr(10) te vervangen door <BR>

zo doe ik het ook op mijn webinput. (en dat gaat altijd goed)

Verwijderd

Topicstarter
Ik zal dan maar es mijn 'string' sharen:
code:
1
2
3
This website contains information of the PCE plant Eindhoven Strijp 1. This site gives you a complete overview of all facilities and rules at this complex.

You can search this site using the button in the left menu.

Hij maakt ervan (ook met replace op chr(10)):
code:
1
2
3
4
This website contains information of the PCE plant Eindhoven Strijp 1. This <BR>
site gives you a complete overview of all facilities and rules at this complex. <BR>
<BR>
You can search this site using the button in the left menu.

De onderste alinea breekt ie dus wel goed af met <BR>s, maar waar komt nou die break bij 'This' vandaan? :?

Nog eentje:
code:
1
2
This website contains information of the PCE plant Eindhoven Strijp 1. 
This site gives you a complete overview of all facilities and rules at this complex.

Dit rolt eruit:
code:
1
2
3
This website contains information of the PCE plant Eindhoven Strijp 1. <BR>
This site gives you a complete overview of all facilities and rules at this <BR>
complex.

Hij heeft blijkbaar iets met 'this' in een tekst ofzo? :?

De bewuste replace functie (aanroep: ReplaceStr("TEKST",chr(10),"<BR>")):
code:
1
2
3
4
5
6
7
8
9
10
Function ReplaceStr(Byval sInstr As String, Byval sFind As String, Byval sReplace As String) As String
  Dim sOut,nPos
  sOut = sInstr
  nPos = Instr(sOut, sFind)
  Do
    sOut = Left(sOut, nPos - 1) & sReplace & Mid(sOut, nPos + Len(sFind))
    nPos = Instr(sOut, sFind)
  Loop While nPos > 0
  ReplaceStr = sOut
End Function

Kan het nog gekker?