Re: Pushing a character backPosted by webmaster Guido on March 08, 2005
In Reply to: Pushing a character back posted by Joey p12386 on March 07, 2005 Positioning an open file "backwards" is done with Seek(F). However, Seek can not be used for text files, so we'll open the file as a "file of bytes". var F: File of byte; procedure TForm1.btnOpenFileClick(Sender: TObject); begin AssignFile(F, 'c:\test.txt'); Reset(F); end; procedure TForm1.btnReadClick(Sender: TObject); var B: byte; Ch: char; begin if not Eof(F) then begin Read(F, B); Ch := Chr(B); // convert byte to character // Do something with the character, e.g.: lblChar.Caption := Ch; end else ShowMessage('At end of file'); end; procedure TForm1.btnBackClick(Sender: TObject); var P: integer; begin { FilePos(F) and Seek(F) can not be used on textfiles, only on "typed" files! } P := FilePos(F); if P > 0 then Seek(F, P - 1) else ShowMessage('Already at beginning of file'); end; procedure TForm1.btnCloseClick(Sender: TObject); begin CloseFile(F); end; Related Articles and Replies
|