Delphi和Web应用程序之间的行尾出现问题

时间:2018-09-27 10:02:23

标签: mysql angularjs delphi delphi-xe7

我们正在将许多Delphi应用程序迁移到基于Web的过程中,在此期间,某些应用程序正在这两者中同时运行。

在某些情况下,Web应用程序可以正确读取由Delphi应用程序编写的换行符,但是当文本保存在Web应用程序中时,Delphi应用程序将忽略换行符。

据我所知,Delphi应用程序在任何行的末尾都写着#$D#$A。在数据库表中,这些被视为CR LF

当Web应用程序保存文本的保存块时,由Delphi读取时,换行符变为#$A。在数据库中,这些值仍为CR LF

有想法吗?

1 个答案:

答案 0 :(得分:2)

您说“ 数据库显示”,但实际上它可能是您用来检查该数据库的工具。我在Oracle和PL / SQL开发人员中遇到了一个问题,其中数据库中的换行符实际上是unix换行符(只是换行符,LF,$ A,\ n,无论您喜欢哪种表示形式),但是数据库工具将其转换为在Windows上运行的客户端,因此将其显示为CR LF。您的工具也可以这样做。

Delphi并没有做这种神奇的翻译,实际上只是将它们读为LF。

因此,要获得特定类型的换行符,您必须一致地存储值,或者在从数据库中读取回车时即时对其进行转换。

在Delphi中,可以在保存之前或在提取之后(或同时在两者之后)使用函数AdjustLineBreaks进行转换。