home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1998 April A
/
Pcwk4a98.iso
/
PROGRAM
/
DELPHI16
/
Calmira
/
Src
/
UTILS
/
STREAMER.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1997-02-15
|
2KB
|
82 lines
{*********************************************************}
{ }
{ Calmira System Library 1.0 }
{ by Li-Hsin Huang, }
{ released into the public domain January 1997 }
{ }
{*********************************************************}
unit Streamer;
{ Combines Delphi's new stream system with some of Turbo Vision's
useful stream facilities. TStreamer avoids the need to use
a TFiler object, and stores data directly to a binary file.
Of course, it is unbuffered, but for small files, this is
unecessary. A more serious issue might be the lack of error
checking, but then TStreamer can interpret any binary data file
whereas TReader needs to find markers left by TWriter }
interface
uses Classes;
type
TStreamer = class(TFileStream)
public
procedure WriteInteger(i: Integer);
procedure WriteBoolean(b: Boolean);
procedure WriteString(const s : string);
procedure WriteChar(c: Char);
function ReadInteger: Integer;
function ReadBoolean: Boolean;
function ReadString: string;
function ReadChar: Char;
end;
implementation
procedure TStreamer.WriteInteger(i: Integer);
begin
Write(i, SizeOf(i));
end;
procedure TStreamer.WriteBoolean(b: Boolean);
begin
Write(b, SizeOf(b));
end;
procedure TStreamer.WriteString(const s: string);
begin
Write(s[0], SizeOf(s[0]));
Write(s[1], Ord(s[0]));
end;
procedure TStreamer.WriteChar(c: Char);
begin
Write(c, SizeOf(c));
end;
function TStreamer.ReadInteger: Integer;
begin
Read(Result, SizeOf(Result));
end;
function TStreamer.ReadBoolean: Boolean;
begin
Read(Result, SizeOf(Result));
end;
function TStreamer.ReadString: string;
begin
Read(Result[0], SizeOf(Result[0]));
Read(Result[1], Ord(Result[0]));
end;
function TStreamer.ReadChar: Char;
begin
Read(Result, SizeOf(Result));
end;
end.