提问人:Penguin 提问时间:8/27/2023 最后编辑:JohnPenguin 更新时间:8/28/2023 访问量:93
如何使数据库中的文本字段自动换行到特定宽度,同时保持段落间距?
How to I get a text field from a database to word wrap to a specific width, while maintaining paragraph spacing?
问:
我已经研究了好几天了,我尝试过的一切都失败了。 我正在使用经典的 ASP 和 MySql 数据库。
我不知道还能去哪里。我在这里读过类似的问题,但解决方案对我不起作用。
任何帮助将不胜感激。
我尝试使用,这给了我正确的换行,但没有保持段落间距。<p STYLE="word-wrap: break-word;width:200"><%=V12%></p>
我尝试使用,这给了我间距,但没有给我换行。<pre>
我试过了,但什么也没做。V12 = Replace(INFO1("STORY_"),vbCrLf,"<BR>")
答:
1赞
John
8/27/2023
#1
保留我曾经使用的数据库字段中的换行符
replace(rs("myfieldname"),chr(13),"<br>")
但是,在过去的几年里,我一直在使用 CSS 风格。它(显然)是客户端代码,因此您可以将其用于您拥有的任何后端。white-space: pre-line
1赞
Adam
8/28/2023
#2
您需要更换时进行更换(或理想情况下两者兼而有之)。VBCrLf
VBLf
根据用于创建字符串的操作系统/软件,换行符可以表示为换行符 ( or ) 或回车符和换行符 ( or )。您可以自行进行回车,但我认为这不会启动新行。VBLf
Chr(10)
VBCrLf
Chr(13)
这个答案/线程很好地解释了它:
https://stackoverflow.com/a/12747850/4901783
因此,在替换换行符时,您需要同时检查 和 。VBLf
VBCrLf
至于段落格式,将换行符替换为将关闭现有段落并打开一个新段落。只要你也把输出包装在标记中。</p><p>
p
您可以在函数中执行所有这些操作,例如:
Function lb_to_p(ByVal Str)
Str = Trim(Str)
' Replace all line breaks with </p><p> to indicate that the paragraph
' has ended and a new one should start.
Str = Replace(Str,VBCrLf,"</p><p>")
Str = Replace(Str,VBCr,"</p><p>")
Str = Replace(Str,VBLf,"</p><p>")
' Wrap the string in paragraph markers.
Str = "<p>" & Str & "</p>"
' Remove any instances of <p></p>. This could happen if there's consecutive
' line breaks, or the string starts or ends with a line break.
Str = Replace(Str,"<p></p>","")
lb_to_p= Str
End Function
评论
VBCrLf
Chr(13)
VBLf
Chr(10)
V12 = "<p>" & Replace(INFO1("STORY_"),vblf,"</p><p>") & "</p>"