Opens an existing file.
procedure Reset(var F); overload; procedure Reset(var F; RecSize: Word); overload; procedure Reset(var F: File); overload; procedure Reset(var F: File; RecSize: Word); overload;
Reset( F); Reset( F, Word RecSize); Reset(File F); Reset(File F, Word RecSize);
System
In Delphi code, Reset opens the existing external file with the name assigned to F using the mode specified by the global FileMode variable. An error results if no existing external file of the given name exists or if the file can't be opened with the current file mode. If F is already open, it is first closed and then reopened. The current file position is set to the beginning of the file.
If F is assigned an empty name, such as AssignFile(F, ''), then after the call to Reset, F refers to the standard input file.
If F is a text file, F becomes read-only.
After a call to Reset, Eof(F) is true if the file is empty; otherwise, Eof(F) is false.
Delphi Examples:
{ This example uses a file listbox and a regular listbox on a form. The following routine scans through the files listed in the file listbox and lists the sizes of any selected files to the regular list box. To exercise the error condition create a file in the Debug directory, start this application and then delete the file. Now try to list the size of the deleted file. Set the MultiSelect and ExtendedSelect properties on the FileListBox. } procedure TForm1.Button1Click(Sender: TObject); var F: File; i, filehandle: Integer; begin for i := 0 to (FileListBox1.Items.Count - 1) do begin try if FileListBox1.Selected[i] then begin if not FileExists(FileListBox1.Items.Strings[i]) then begin MessageDlg('File: ' + FileListBox1.Items.Strings[i] + ' not found', mtError, [mbOk], 0); Continue; end; filehandle:= FileOpen(FileListBox1.Items.Strings[i], 1); if (filehandle = -1) then begin MessageDlg('File: ' + FileListBox1.Items.Strings[i] + ' cannot be opened with access mode 1.', mtError, [mbOk], 0); Continue; end else FileClose(filehandle); AssignFile(F, FileListBox1.Items.Strings[i]); Reset(F, 1); ListBox1.Items.Add( FileListBox1.Items.Strings[i] + ': ' + IntToStr(FileSize(F))); CloseFile(F); end; finally { do something here } end; end; end;
{ This example should be executed from a command line formatted like this: "SystemReset_proj foo.txt". The file path is relative to the project directory. } function FileIsThere(FileName: string): Boolean; { Boolean function that returns True if the file exists; otherwise, it returns False. Closes the file if it exists. } var F: file; begin {$I-} AssignFile(F, FileName); FileMode := 0; {Set file access to read only } Reset(F); CloseFile(F); {$I+} FileIsThere := (IOResult = 0) and (FileName <> ''); end; { FileIsThere } procedure TForm1.Button1Click(Sender: TObject); begin if FileIsThere(ParamStr(1)) then {Get file name from command line} Canvas.TextOut(10, 10, 'File exists') else Canvas.TextOut(10, 10, 'File not found'); end;
{ Click the button to open a TOpenDialog, then select a file to delete. } procedure TForm1.Button1Click(Sender: TObject); var F: Textfile; begin OpenDialog1.Title := 'Delete File'; if OpenDialog1.Execute then begin AssignFile(F, OpenDialog1.FileName); try Reset(F); if MessageDlg('Erase ' + OpenDialog1.FileName + '?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin CloseFile(F); Erase(F); end; except on EInOutError do MessageDlg('File I/O error.', mtError, [mbOk], 0); end; end; end;
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|