1
這是TSysCharSet下的申報德爾福柏林由什麼來取代在nextgen下不推薦使用的TSysCharSet?
TSysCharSet = set of Char deprecated; // Holds Char values in the ordinal range of 0..255 only.
它現在已經過時,但通過什麼來代替呢?我只需要給我的功能一些像[[',#9,#13,#10]字符集
這是TSysCharSet下的申報德爾福柏林由什麼來取代在nextgen下不推薦使用的TSysCharSet?
TSysCharSet = set of Char deprecated; // Holds Char values in the ordinal range of 0..255 only.
它現在已經過時,但通過什麼來代替呢?我只需要給我的功能一些像[[',#9,#13,#10]字符集
如果你只需要攜帶一組(unicode)字符,那麼你不需要需要TSysCharSet。只需使用炭的動態數組:
var
MyCharArray : TArray<char>;
begin
MyCharArray := [' ',#9,#13,#10];
end;
TSysCharSet中主要是使用的CharInSet例程;在文檔中,他們將TCharHelper指代爲CharInSet,因爲TSysCharSet不能包含unicode字符。
uses System.Character;
var
WhiteSpace : TSysCharSet;
ac : ansichar;
c : char;
begin
// replace this....
ac := #9;
WhiteSpace := [' ',#9,#13,#10];
if CharInSet(ac, WhiteSpace) then
begin
end;
// ...with this:
c := #9;
if c.IsWhiteSpace then
begin
end
end
結果將有所不同,因爲IsWhitespace將捕獲更多字符。 –
根據文檔,我沒有看到任何替換。該文檔基本上說,如果你想用它來unicode字符,那麼對不起。奇怪的是,它甚至沒有提到它已被棄用。 http://docwiki.embarcadero.com/Libraries/Seattle/en/System.SysUtils.TSysCharSet –
由於實施限制,集合並不合適。找到一種不涉及集合的方式。 –