2009-11-30 73 views
4

Delphi 2009及以上版本支持unicode。我有几个传统的pascal源文件,我希望在Delphi 2009/2010以及Delphi 2007及更低版本中编译它。是否有任何工具/实用工具将“string”转换为pascal源文件中的“AnsiString”?

一个快速和安全的方式是更换

  • 字符串AnsiString类型
  • PChar类型PAnsiChar
  • CHAR到ANSIChar类型

是否有任何工具可用的能够解析的.pas文件并做出这样的替换?

+4

它可能很快但它肯定不安全。 – mghie 2009-11-30 07:51:28

+0

Yikes!那是/不是你想要做的事。 – 2009-11-30 14:50:48

回答

1

您可以使用sed

 
sed -i bak -e "s/string/AnsiString/g" *.pas 

虽然这将是一个非常糟糕的主意。 没有理由你的代码不应该编译在所有德尔福版本。“字符串”的含义已经改变,但那又如何?您的Delphi 2007代码不需要使用您的Delphi 2009代码。 DCU文件格式不同,所以你必须重新编译你改变的任何东西。

通过将所有内容都更改为AnsiString,您基本上会拒绝Delphi 2009提供的所有新功能。如果这就是你想要做的,那么根本不需要升级到Delphi 2009就可以为你节省很多钱。为什么购买产品,然后不使用它的任何功能?由于产品中的其他所有内容都是Unicode,因此您的程序的性能会随着它在字符串格式之间的不断转换而下降。您还将淹没所有转换的编译器警告。

不要强迫方钉插入圆孔,特别是当你有一组完美的圆钉坐在你身旁时。

+0

谢谢。我将尽力让我的遗留代码完全升级到Delphi 2009/2010,并能够使用任何版本的Delphi进行编译。 – 2009-12-01 01:02:02

+1

那么你应该尝试的第一件事就是不要改变任何东西。用新的编译器测试你的程序。找出你有什么实际问题。 – 2009-12-01 02:57:50

2

没有为指出,可能需要关注的领域的工具:

http://cc.embarcadero.com/Item/27398

它不转换,它会自动,grep的会做,但作为mghie说,这不是那么简单。

相关问题