如何在delphi中检查文件指针是否已分配?

时间:2019-05-09 10:45:52

标签: file delphi

在delphi中,我们可以创建文件指针来读取和写入字符串到文件中。在我的项目中,如果没有分配文件指针,我必须创建它。

请分享实现它的想法。

AssignFile(FilePtr, 'File1.txt');
Rewrite(FilePtr);
closeFile(FilePtr); 

1 个答案:

答案 0 :(得分:1)

由于您正在写入.TXT文件,因此我认为FilePtr是TextFile。

如果FilePtr是CLASS的成员,则从开始就将其清零。如果它是一个全局变量,那么它也有。如果它是局部变量,则需要在定义它的方法开始时自己做:

  Widget buildFormTree() {
    final formKey = GlobalKey<FormState>();
    String text1;
    String text2;
    return Column(
      children: <Widget>[
        Form(
          key: formKey,
          child: Column(
            children: <Widget>[
              TextFormField(
//            key: asd, //No need
                onSaved: (text) {
                  text1 = text;
                },
              ),
              TextFormField(
//            key: qwe, // No need
                onSaved: (text) {
                  text2 = text;
                },
              ),
            ],
          ),
        ),
        RaisedButton(
          child: Text('Save Forms'),
          onPressed: () {
            ///to trigger onSaved callback
            formKey.currentState.save();
          },
        )
      ],
    );
  }

然后您可以使用以下方法检查文件是否已分配给文件:

TTextRec(FilePtr).Handle:=0;

关闭它时,还必须添加以下行:

IF TTextRec(FilePtr).Handle=0 THEN BEGIN
  AssignFile(FilePtr,'File1.txt');
  Rewrite(FilePtr)
END;

如果您的FilePtr是FILE而不是TextFile,请用TFileRec代替TTextRec。