3
在2009年之前的Delphi(ANSI land)中,您可以使用Ord
和Chr
將字符轉換爲字節,反之亦然。這是很好的,例如當你需要操作一個字符作爲一個字節:在UnicodeChar和Integer之間打字是否安全?
var
ch: char;
begin
ch:= chr(ord(ch1) xor ord(ch2));
end;
顯然,在新的DELPHIS字符不是了,但兩個字節。是否安全然後做類型鑄造:
var
ch: char;
begin
ch:= Char(integer(ch1) xor integer(ch2));
end;
獲得相同的結果?即使使用西裏爾字母和阿拉伯字符,我迄今爲止所做的測試也能正常工作,但您永遠不知道。
謝謝。我問,因爲(至少在Delphi 2010中)用鼠標突出顯示chr會顯示工具提示:返回System.AnsiChar,並且在發送參數時,工具提示表示它期望一個字節)。但是你是對的,它似乎比一個字節吃的更高的值,並給出正確的字符。 – Lobuno
所以對於Char和WideChar來說整數類型是'Word',但AnsiChar是'Byte'? –
@JensMühlenhoff是的,這是我的信念。如果文檔能夠趕上,這將是非常好的。 –