Delphi:从6升级到XE2 - TStringList

时间:2012-12-18 10:51:50

标签: string delphi unicode upgrade tstringlist

我们必须升级到XE2(来自Delphi6)。

我收集了许多关于此的信息,但其中一个对我来说并不清楚。

我们正在使用String - XE中的AnsiString是什么。

据我所知,我们必须替换我们库中的所有(P)Ansi [String / Char]以避免Unicode转换的副作用,并且我们可以编译我们的项目。

没关系,但我们也使用TStringList,我没有找到任何简单的TAnsiStringList类......; - )

你对此有何了解?这会引起问题吗?或者这个类有保留字符串的选项?

(好吧,这似乎是3个问题,但它只是一个问题)

程序/操作系统语言是匈牙利语,字符集是WIN-1250,有什么奇怪的字符,比如Ő,和Ű...

感谢您的所有信息,链接等

1 个答案:

答案 0 :(得分:2)

1)首先 - 为什么你应该使用AnsiStringList,而不是将你的所有项目转换为unicode-aware TStringList?这应该有一些详细的原因,以提出可行的替代方案。

Unicode是windows-1250,windows-1251等的超集。 通常,所有特定于语言环境的字符串都将无损地转换为Unicode。 IT是相反的,Unicode到AnsiString,转换可能会丢失数据。 显式或隐式(如“如果char-set中的char-var”中的AnsiChar减少)

你可能有像DLL这样的类型不安全的API,编译器无法检查你是否通过了PChar或PAnsiChar,但你无论如何都不应该将对象传递给DLL,而是有BPL。

所以你可能只是不需要TAnsiStringList

2)你可以从Jedi代码库中获取TJclAnsiStringList

3)您可以使用XE2库存TList<AnsiString>类型