gpt4 book ai didi

pascal - 帕斯卡中的长字符串

转载 作者:行者123 更新时间:2023-12-02 10:02:17 31 4
gpt4 key购买 nike

我希望能够使用一个相当长的字符串(不超过 100000 个符号)。据我所知,典型的字符串变量最多只能包含 256 个字符。有没有办法存储这么长的字符串?

最佳答案

旧式(Turbo Pascal 或 Delphi 1)字符串,现在称为 ShortString,限制为 255 个字符(字节 0 被保留用于字符串长度)。这似乎仍然是 FreePascal 中的默认设置(根据下面 @MarcovandeVoort 的评论)。不过,请继续阅读,直到您看到下面的 AnsiString 的讨论和代码示例。 :-)

目前,我知道的大多数其他 Pascal 方言默认为 AnsiString (单字节字符的长字符串)或 UnicodeString (多字节字符的长字符串)人物)。两者都不限制为 255 个字符。

当前版本的 Delphi 默认使用 UnicodeString 作为默认类型,因此声明 string 变量实际上是一个很长的 UnicodeString。字符串长度没有实际上限:

var
Test: string; // Declare a new Unicode string
begin
SetLength(Test, 100000); // Initialize it to hold 100000 characters
Test := StringOfChar('X', 100000); // Fill it with 100000 'X' characters
end;

如果你想强制使用单字节字符(但不限于255个字符串),请使用AnsiString(可以将其设置为FreePascal中默认的string类型)如果您使用 {$H+} 编译器指令 - 感谢@MarcovandeVoort):

var
Test: AnsiString; // Declare a new Ansistring
begin
SetLength(Test, 100000); // Initialize it to hold 100000 characters
Test := StringOfChar('X', 100000); // Fill it with 100000 'X' characters
end;

最后,如果您出于某种未知原因想要使用限制为 255 个字符的旧样式 ShortString,请这样声明,或者使用 ShortString 或旧式 String[Size] 声明:

var
Test: ShortString; // Declare a new short string of 255 characters
ShortTest: String[100]; // Also a ShortString of 100 characters
begin
// This line won't compile, because it's too large for Test
Test := StringOfChar('X', 100000); // Fill it with 100000 'X' characters
end;

关于pascal - 帕斯卡中的长字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20177412/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com