是否有任何工具/实用程序可以在pascal源文件中将“string”转换为“AnsiString”?

时间:2009-11-30 07:21:25

标签: delphi unicode

Delphi 2009及以上版本支持unicode。我有几个遗留的pascal源文件,我希望在Delphi 2009/2010以及Delphi 2007及以下版本中进行编译。

快速安全的方法是替换

  • 字符串到AnsiString
  • PChar到PAnsiChar
  • Char to AnsiChar

是否有任何实用程序可以解析.pas文件并进行此类替换?

2 个答案:

答案 0 :(得分:2)

有一个工具可以指出可能需要注意的区域:

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

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

答案 1 :(得分:1)

您可以使用sed

sed -i bak -e "s/string/AnsiString/g" *.pas
但是,这将是一个非常糟糕的主意。 没有理由你的代码不能在所有 Delphi版本中编译。“string”的含义已经改变了,但那又怎么样?您的Delphi 2007代码不需要使用您的Delphi 2009代码。 DCU文件格式不同,因此您无需重新编译您更改的任何内容。

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

不要将方钉钉入圆孔,特别是当你有一套完美好的圆钉坐在你旁边时。