|
|
Closing a BinaryWriter and BinaryReader |
// Full Unit code. // ------------------------------------------------------------- // Create a new WinForm application, double click the form to // create an OnLoad event, and then replace the WinForm unit // with this text. unit WinForm; interface uses System.Drawing, System.Collections, System.ComponentModel, System.Windows.Forms, System.Data; type TWinForm = class(System.Windows.Forms.Form) \{REGION 'Designer Managed Code'\} // Note that REGION and ENREGION should be prefixed by a dollar sign strict private /// /// Required designer variable. /// Components: System.ComponentModel.Container; /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// procedure InitializeComponent; procedure TWinForm_Load(sender: System.Object; e: System.EventArgs); {ENDREGION} strict protected /// /// Clean up any resources being used. /// procedure Dispose(Disposing: Boolean); override; private { Private Declarations } public constructor Create; end; [assembly: RuntimeRequiredAttribute(TypeOf(TWinForm))] implementation \{REGION 'Windows Form Designer generated code'\} /// /// Required method for Designer support -- do not modify /// the contents of this method with the code editor. /// procedure TWinForm.InitializeComponent; begin // // TWinForm // Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13); Self.ClientSize := System.Drawing.Size.Create(292, 266); Self.Name := 'TWinForm'; Self.Text := 'WinForm'; Include(Self.Load, Self.TWinForm_Load); end; {ENDREGION} procedure TWinForm.Dispose(Disposing: Boolean); begin if Disposing then begin if Components <> nil then Components.Dispose(); end; inherited Dispose(Disposing); end; constructor TWinForm.Create; begin inherited Create; // // Required for Windows Form Designer support // InitializeComponent; // // TODO: Add any constructor code after InitializeComponent call // end; procedure TWinForm.TWinForm_Load(sender: System.Object; e: System.EventArgs); program Project1;
{$APPTYPE CONSOLE}
uses
System.IO;
var
MyFileStream : System.IO.FileStream;
MyFileWriter : System.IO.BinaryWriter;
MyFileReader : System.IO.BinaryReader;
CharAsByte : Byte;
begin
// Create and open our binary file as a stream
MyFileStream := System.IO.File.Open('C:DelphiBasics.txt',
System.IO.FileMode.Create);
// Create a BinaryWriter to allow writing to this file
MyFileWriter := System.IO.BinaryWriter.Create(MyFileStream);
// Write to the file
MyFileWriter.Write('A');
MyFileWriter.Write('BCD');
MyFileWriter.Write(175);
// Close the writer and the stream
MyFileWriter.Close;
MyFileStream.Close;
// Reopen the stream for reading
MyFileStream := System.IO.File.Open('C:DelphiBasics.txt',
System.IO.FileMode.Open);
// Create a BinaryReader to allow the file to be read back
MyFileReader := System.IO.BinaryReader.Create(MyFileStream);
// Display the file contents
// Note : We must look for the 'EndOfStreamException'
// when using ReadByte to know when we are done
try
while 1 <> 0 do
begin
CharAsByte := MyFileReader.ReadByte;
Console.WriteLine('{0:X}', TObject(CharAsByte));
end;
except
On E : EndOfStreamException do
Console.WriteLine('End of file encountered');
end;
// Close the reader and the stream
MyFileReader.Close;
MyFileStream.Close;
Console.Readline;
end. end. | Hide full unit code | 41
3
42
43
44
AF
End of file encountered
|
|
|
|