我想用TStream(streamIn)或缓存文件中的任何流逐字节读取。
我不喜欢'我知道Streams很好,实际上我想逐字节地读取缓存文件。 当这个"读"从另一个类调用的函数必须读取缓存文件中的下一个字节。但是TStream没有" readbyte"方法。
function TStringInputStream.read : Integer;
begin
if not back then
lastByte:= streamIn.ReadByte -> ???
back:= false;
Result:= lastByte;
end;
function TStringInputStream.readLine: String;
var
c : Integer;
ns : Boolean;
endd : Boolean;
res : String;
begin
ns:= True;
endd:= False;
while not endd do
begin
c:= read;
if (c = -1) and (ns) then
begin
Result:= '';
Exit;
end;
ns:= false;
if (c = LF) or (c = -1) then
endd:= true
else if c = CR then
begin
if read <> LF then
rewind;
endd:= true;
end
else
res:= IntToStr(c);
end;
Result:= res;
end;
答案 0 :(得分:4)
使用ReadBuffer
读取单个字节。
var
B: Byte;
....
Stream.ReadBuffer(B, SizeOf(B));
或者,如果您使用XE3或更高版本,则可以使用ReadData
。
Stream.ReadData(B);