stream中有一个字节是整数,小弟我想把它读出来,放进一个integer变量中,如何做
stream中有一个字节是整数,我想把它读出来,放进一个integer变量中,怎么做?
stream中有一个字节是整数,我想把它读出来,放进一个integer变量中,怎么做?
还有一个问题
stream中比如从5字节开始,是一个5位的字条串"abcde",我想把它读出来放进一个string变量中,怎么做?
------解决方案--------------------
------解决方案--------------------
感觉 ss.Write(a1,sizeof(a1)) 这种写法似乎有问题。a1 在这里是数组地址。按 Delphi 的定义,这里应该是变量,由编译程序把它转换成地址。是否可以改成 ss.Write(a1[0],sizeof(a1))?其实可以不用数组,直接把一个四字节整数写进去就行。
再者,你从 position = 2 开始读,只剩两个字节可以读出了。iC 是四字节的,这样高位两个字节没有被覆盖,iC 又未初始化,其初值未必是 0。
stream中有一个字节是整数,我想把它读出来,放进一个integer变量中,怎么做?
还有一个问题
stream中比如从5字节开始,是一个5位的字条串"abcde",我想把它读出来放进一个string变量中,怎么做?
------解决方案--------------------
var
strm : TStringStream;
s : string;
begin
strm := TStringStream.Create;
try
strm.WriteString('1ab3c');
strm.Position := 0;
// strm.Position := 3;
s := strm.ReadString(1);
finally
strm.Free;
end;
end;
------解决方案--------------------
感觉 ss.Write(a1,sizeof(a1)) 这种写法似乎有问题。a1 在这里是数组地址。按 Delphi 的定义,这里应该是变量,由编译程序把它转换成地址。是否可以改成 ss.Write(a1[0],sizeof(a1))?其实可以不用数组,直接把一个四字节整数写进去就行。
再者,你从 position = 2 开始读,只剩两个字节可以读出了。iC 是四字节的,这样高位两个字节没有被覆盖,iC 又未初始化,其初值未必是 0。