使用 AI 将我旧的基于 AnsiString 的 D7 应用程序转换为 Unicode?

问题描述 投票:0回答:1

将非常旧的基于 ANSI 字符集的 Win32 应用程序转换为 UNICODE 的最佳过程是什么?目前源代码是用Delphi7编译的。使用哪个 Delphi 版本进行此转换最好?我目前有 XE6 版本的许可证,值得使用吗?

有大量 .pas 和 .dfm 文件,因此 AI 将是首选方法。

代码同时使用 STRING(最旧的)和 ANSISTRING、pchar、TStringList、TStreamFile。 该代码兼容从Windows95到Win11的所有Windows版本。

这只是如何使用字符串的一个小例子:

function LocalizeGUI.LanguageCodeStr( code :string ): integer;
var
  rowlist : tstringlist;
  st,j,i : integer;
  alang: ansistring;
begin
st := 0;
if code = '' then code := Setting_ActiveLANGUAGE;
     for i := 0 to languages.count - 1 do begin

     alang := '';
     RowList:= StrParse(Languages.strings[i],'=');

        if (rowlist<>nil )and (rowlist.count>0) then
          if uppercase(rowlist.strings[1]) = uppercase(code) then st := i;

       RowList.free;
     end;

     result := st;

end;
delphi delphi-7
1个回答
0
投票

Embarcadero 提供了一个非常全面的网站,其中包含有关如何以不同方式(例如 Unicode、x64、数据库等)迁移 Delphi 或 C++Builder 应用程序的大量信息:

迁移升级中心

在 Unicode 迁移部分,您可以找到 Unicode 统计工具(需要免费的 CDN 帐户才能下载):

此 Unicode 统计工具将帮助您收集有用的统计数据,了解将 Delphi 应用程序迁移到 Unicode 所需的时间和精力。

该工具会检查您的代码并告诉您最有可能需要更改的位置和内容。这至少可以让您估计需要审查多少行。

因此,结合其他可用资源,您应该很好地掌握要成功迁移所需执行的操作或更改的内容,无论是手动还是人工智能驱动。

关于您关于 Unicode 迁移过程使用哪个 Delphi 版本的问题:
这根本不重要,每个支持 Unicode 的 Delphi 版本就足够了(即撰写本文时的 Delphi XE 到 XE8 和 Delphi 10 到 12)。在这种情况下更重要的是,原始项目中使用的第 3 方组件可用于后续的 Delphi 版本。但这是另一个话题了...

© www.soinside.com 2019 - 2024. All rights reserved.