【发布时间】:2020-11-15 21:27:55
【问题描述】:
在我下面的例子中,我不希望在读取文件的第一个字符之前将c 分配给任何东西。
我尝试将Char 变量c 设置为nil (c := nil;) 但编译失败。我尝试了如下所示的空字符串,但仍然无法正常工作。
当我将它设置为空白时它可以工作,但我必须这样做似乎很奇怪。
有什么方法可以像在其他语言中那样将 Char 初始化为 null 类似的值?
program CSVToMarkdown;
{$mode objfpc}{$H+}{$J-}
uses
Sysutils;
var
f: File of Char;
c: Char;
begin
Assign(f, 'test.csv');
Reset(f);
c := '';
while not Eof(f) do
begin
Read(f, c);
Write(c);
end;
Close(f);
ReadLn;
end.
【问题讨论】:
-
相关:stackoverflow.com/questions/9618587/…。您可能已经知道这一点,但是您当然可以将
c设置为ASCII NUL 字符:c := #0。实际上,您不需要手动执行此操作,因为作为 全局 变量,c已初始化为此。 -
您不需要初始化变量 c,因为它在被读取(通过写入)之前已分配给(通过 Read)。跨度>
标签: pascal freepascal lazarus