web-dev-qa-db-ja.com

ColdFusionで文字列に改行を書き込むにはどうすればよいですか?

現在、次の2つの方法のいずれかを使用して、文字列に改行を入れています。

<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" />

Java/C++のようなものは他にありますか?これのような何か私は意味します:

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

あなたのやり方は正しいです。 CFでは\ nまたは\ rのサポートはありません。 Live Docs から

  • Chr(10)は改行文字を返します
  • Chr(13)は復帰文字を返します
  • 2文字の文字列Chr(13)とChr(10)はWindowsの改行を返します
27
Nick Van Brunt

プラットフォームに依存しない開発を行っている場合は、次のことができます。

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

たとえば、application.cfm/cfcまたは他の高レベルな場所で使用します。

16
Tomalak

私はこれを使います:

<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

CFに直接ではなく、CF-Javaの担当者に任せて、JavaメソッドをCF varで直接使用して目的を達成できるかどうかを判断しますが...

Cfsavecontentを使用して、自然な改行を入れることができます。

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

次にそれを確認してください:

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

Trim()が必要ない場合は、最初と最後の改行を取り除くために存在することに注意してください。

4
Adrian Lynch

CF8形式のcfmailで、改行があり、何も追加されていません。アドビは「なぜ」と簡単な回避策について特定の何かを提供するようです。 ...管轄

0
Jurisdictionary

<cfscript>に新しい行を出力する方法を探していたので、同様の方法で到着した他の人には答えを残しておくと思いました。

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

writeOutput htmlとしてページ出力ストリームに追加するため、出力するためにhtmlを書き込む必要があります(つまり、&nbsp;を含めることもできますインデント用のスペースを追加するには)

0
Travis Heeter

私はこのようなものがうまくいくかどうか疑問に思っていました:

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

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

悲しいかな:O(

0
Adrian Lynch