var
ms : TMemoryStream;
writer : TWriter;
Reader : TReader;
ms2,ms3 : TMemoryStream;
mysize : integer;
begin
if not OpenDialog1.Execute then exit;
edit2.Text := OpenDialog1.FileName;
ms := TMemoryStream.Create;
writer := TWriter.Create(ms,$ff);
//1.写入值
writer.writeinteger(100);
//写入文件
ms2 := TMemoryStream.Create;
ms2.LoadFromFile(Edit2.Text);
ms2.Position := 0;
writer.writeinteger(ms2.Size);
writer.Write(ms2.Memory^,ms2.Size);
writer.WriteString('200');
writer.WriteString('200');
writer.WriteString('200');
writer.WriteString('200');
//2.取出值
ms.Position := 0;
Reader := TReader.Create(ms,$ff);
showmessage(inttostr(reader.ReadInteger));
ms3 := TMemoryStream.Create;
mysize := Reader.ReadInteger;
ms3.SetSize(mysize);
reader.Read(ms3.Memory^,mysize);
//上面这句出错 出用改为下面则Reader.readString出错
//ms3.WriteBuffer(reader,mysize);
//ms3.SetSize(mysize);
//reader.read(ms3.Memory^,mysize);
//Reader.Position := Reader.Position + mysize; Reader.ReadString;
Reader.ReadString;
Reader.ReadString;
Reader.ReadString;
ms.Free;
ms2.Free;
ms3.Free;
end;
ms : TMemoryStream;
writer : TWriter;
Reader : TReader;
ms2,ms3 : TMemoryStream;
mysize : integer;
begin
if not OpenDialog1.Execute then exit;
edit2.Text := OpenDialog1.FileName;
ms := TMemoryStream.Create;
writer := TWriter.Create(ms,$ff);
//1.写入值
writer.writeinteger(100);
//写入文件
ms2 := TMemoryStream.Create;
ms2.LoadFromFile(Edit2.Text);
ms2.Position := 0;
writer.writeinteger(ms2.Size);
writer.Write(ms2.Memory^,ms2.Size);
writer.WriteString('200');
writer.WriteString('200');
writer.WriteString('200');
writer.WriteString('200');
//2.取出值
ms.Position := 0;
Reader := TReader.Create(ms,$ff);
showmessage(inttostr(reader.ReadInteger));
ms3 := TMemoryStream.Create;
mysize := Reader.ReadInteger;
ms3.SetSize(mysize);
reader.Read(ms3.Memory^,mysize);
//上面这句出错 出用改为下面则Reader.readString出错
//ms3.WriteBuffer(reader,mysize);
//ms3.SetSize(mysize);
//reader.read(ms3.Memory^,mysize);
//Reader.Position := Reader.Position + mysize; Reader.ReadString;
Reader.ReadString;
Reader.ReadString;
Reader.ReadString;
ms.Free;
ms2.Free;
ms3.Free;
end;
解决方案 »
- 关于正则表达式的问题
- 大虾救命啊!!!!!!
- fastreport中怎么让页脚里能分别显示各dataset各行的值
- 感谢fengxue291080(风雪)同志的帮助,在此以10分酬谢.
- 有关调用DLL退出时出现Invalid Pointer Opreation错误的问题
- 请多关照,关于form的问题,绝对新手 跪求!!!!!!
- 在程序中如何设计用户权限功能?
- 怎样在WINDOWS启动之前运行一个程序
- 高手!!!请问win98和win2000自带的数据库驱动程序分别有那些啊?
- 烦人的问题!!!
- 严正声明!关于酒店管理系统的源代码,谁想要! [email protected] 此贴
- 挑战sql语句——导入数据,判断与主键重复数据,重复的数据就更新原来的数据
前面加上
ms3.position := 0 看看行不?
之后你是否有检查到m2.Size=0?