我寻找一个单位来解决turbo pascal 255字符串限制

问题描述 投票:0回答:1

是否有一个框架/单元可以用字符串填充来解决 255 个字符串的限制?

带有循环的示例

MyStringAllwaysWithOneString := 'X';

for i := 0 to CompleteStringLength do
begin
  255NoLimitUnit :=   255NoLimitUnit + MyStringAllwaysOneString;
end;

然后同样读取255NoLimitUnit。 Delphi 和 FreePascal 也可以处理更长的字符串。

或者还有其他建议吗? 一种方法是每个字节写入一个文件。但我认为有一个时间问题。

x86-16 dos pascal 16-bit turbo-pascal
1个回答
0
投票

经典的解决方法是使用更底层的字符串类型“pchar”,它是一个指向 char 和更像 C 语言的字符串例程的指针。因此,这会使所有正常的 string[] 操作无效,并且必须使用字符串单元中的 pchar 特定例程。

IIRC 的另一个复杂之处是 TP 不支持使用 write 写入 pchar,因此您可能需要使用 blockwrite 来实现这一点,并进行一些 textrec<>file hacking。

总的来说,如果你仍然坚持 TP,请确保你获得带有示例的 SWAG 存档并彻底研究它。

如果您出于性能原因这样做,请查看 settextbuf

(或者只使用 Free Pascal)

© www.soinside.com 2019 - 2024. All rights reserved.