web-dev-qa-db-fra.com

Comment puis-je écrire une nouvelle ligne dans une chaîne dans ColdFusion?

Actuellement, je mets des nouvelles lignes dans les chaînes de l'une de ces deux méthodes:

<cfset someStr="This is line 1" & Chr(10) & "This is line 2" & Chr(10) & "This is line 3" />

OR

<cfset NL=Chr(10) />
<cfset someStr="This is line 1#NL#This is line 2#NL#This is line 3" />

Y a-t-il autre chose qui ressemble à la manière Java/C++? Quelque chose de plus comme ça je veux dire:

<cfset someStr="This is line 1\nThis is line 2\nThis is line 3" />
27
Kip

Votre chemin est correct. Il n’existe pas de support pour\n ou\r dans CF. À partir de Live Docs

  • Chr (10) renvoie un caractère de saut de ligne
  • Chr (13) renvoie un caractère de retour chariot
  • Les chaînes de caractères Chr (13) et Chr (10) renvoient une nouvelle ligne de Windows.
27
Nick Van Brunt

Si vous êtes dans le développement indépendant de la plate-forme, vous pouvez faire:

<cfset NL = CreateObject("Java", "Java.lang.System").getProperty("line.separator")>

Par exemple, dans votre application.cfm/cfc ou ailleurs, utilisez un niveau élevé.

16
Tomalak

j'utilise ceci:

<cfset br = "#chr(13)##chr(10)#">
<cfset someStr="This is line 1#br#This is line 2#br#This is line 3" />
11
marc esher

Pas directement dans CF, je laisserai aux types CF-Java le soin de dire si vous pouvez utiliser une méthode Java directement sur une var de CF pour obtenir ce que vous voulez, mais ...

Vous pouvez utiliser cfsavecontent pour insérer des sauts de ligne naturels dans:

<cfsavecontent variable="someStr">
This is line 1
This is line 2
This is line 3
</cfsavecontent>

Puis vérifiez avec:

<cfoutput>
<pre>#Trim(someStr)#</pre>
</cfoutput>

Notez que le trim () est là pour vous débarrasser des premier et dernier sauts de ligne si vous ne le souhaitez pas.

4
Adrian Lynch

CF8 au format CFmail avec sauts de ligne et sans rien ajouter. On dirait que Adobe fournirait quelque chose de SPÉCIFIQUE sur le "pourquoi" et une solution simple. ... Jurisdictionary

0
Jurisdictionary

Je cherchais un moyen de générer une nouvelle ligne dans <cfscript>; j'ai donc pensé laisser ma réponse à quiconque arriverait de la même manière:

writeDump(variable); // writeDump will not produce a new line.
writeOutput("<br>"); // you have to use writeOutput.

writeOutput est ajouté au flux de sortie de la page au format HTML. Vous devez donc écrire du code HTML pour la sortie (cela signifie que vous pouvez également inclure &nbsp; pour ajouter des espaces d'indentation) .

0
Travis Heeter

Je me demandais si quelque chose comme ça marcherait:

<cfset str = CreateObject("Java", "Java.lang.String").init("Line 1\nLine 2\nLine 3")>

<cfoutput>
<pre>#str#</pre>
</cfoutput>

Hélas non: O (

0
Adrian Lynch