以下代码尝试将一个TextFile变量分配给另一个,但不编译:
[Error] Operator not applicable to this operand type
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
var t1, t2: TextFile;
begin
t1 := t2; // <-- [Error] Operator not applicable to this operand type
end.
如果可以分配给TextFile变量,则可以轻松地在System.Output
,Sytem.ErrOutput
和/或其他TextFile
个实例之间切换。但是,作业可能吗?
答案 0 :(得分:6)
似乎不支持TextFile
变量的赋值,但您可以声明并使用指针类型:
type
PTextFile = ^TextFile;
var
F: PTextFile;
begin
F := @Output;
Writeln(F^, 'Hello');
F := @ErrOutput;
Writeln(F^, 'Hello');
AssignFile(F^, 'test.txt');
Rewrite(F^);
Writeln(F^, 'Hello');
CloseFile(F^);
end;