首页 > 解决方案 > Delphi 和 Web 应用程序之间的行尾问题

问题描述

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

我们有一种情况,Web 应用程序可以正确读取 Delphi 应用程序编写的换行符,但 Delphi 应用程序在将文本保存在 Web 应用程序中时忽略了换行符。

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

#$A当 Web 应用程序保存文本的保存块时,Delphi 读取时会变成换行符。在数据库中,这些似乎仍然是CR LF

想法?

标签: mysqlangularjsdelphidelphi-xe7

解决方案


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

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

因此,要获得特定类型的换行符,您要么必须一致地存储值,要么在从数据库中读回值时动态转换它。

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


推荐阅读