2017-03-06 27 views
1

這是TSysCharSet下的申報德爾福柏林由什麼來取代在nextgen下不推薦使用的TSysCharSet?

TSysCharSet = set of Char deprecated; // Holds Char values in the ordinal range of 0..255 only. 

它現在已經過時,但通過什麼來代替呢?我只需要給我的功能一些像[[',#9,#13,#10]字符集

+0

根據文檔,我沒有看到任何替換。該文檔基本上說,如果你想用它來unicode字符,那麼對不起。奇怪的是,它甚至沒有提到它已被棄用。 http://docwiki.embarcadero.com/Libraries/Seattle/en/System.SysUtils.TSysCharSet –

+0

由於實施限制,集合並不合適。找到一種不涉及集合的方式。 –

回答

2

如果你只需要攜帶一組(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 
+1

結果將有所不同,因爲IsWhitespace將捕獲更多字符。 –

相關問題