我们正在将许多Delphi应用程序迁移到基于Web的过程中,在此期间,某些应用程序正在这两者中同时运行。
在某些情况下,Web应用程序可以正确读取由Delphi应用程序编写的换行符,但是当文本保存在Web应用程序中时,Delphi应用程序将忽略换行符。
据我所知,Delphi应用程序在任何行的末尾都写着#$D#$A
。在数据库表中,这些被视为CR LF
。
当Web应用程序保存文本的保存块时,由Delphi读取时,换行符变为#$A
。在数据库中,这些值仍为CR LF
有想法吗?
答案 0 :(得分:2)
您说“ 数据库显示”,但实际上它可能是您用来检查该数据库的工具。我在Oracle和PL / SQL开发人员中遇到了一个问题,其中数据库中的换行符实际上是unix换行符(只是换行符,LF,$ A,\ n,无论您喜欢哪种表示形式),但是数据库工具将其转换为在Windows上运行的客户端,因此将其显示为CR LF。您的工具也可以这样做。
Delphi并没有做这种神奇的翻译,实际上只是将它们读为LF。
因此,要获得特定类型的换行符,您必须一致地存储值,或者在从数据库中读取回车时即时对其进行转换。
在Delphi中,可以在保存之前或在提取之后(或同时在两者之后)使用函数AdjustLineBreaks
进行转换。