高手挑战: 寻求TStream类及其派生类的功能说明及应用

dragongong 2000-09-07 09:22:00
本人想知道TStream及其派生类如:THandleStream、TFileStream的作用及其一般应用在那些方面,能否利用TFileStream再派生出自己的类用于操纵自定义格式的文件,请各位大虾不吝赐教!(不要英文帮助,最好能够结合classes中的实际代码讲一下)
...全文
128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragongong 2000-09-12
  • 打赏
  • 举报
回复
谢谢两位,但是为什么大家都没有能够提出一点建设性的意见呢?
我这几天看了一下classes中的源代码,基本了解清楚了这些类的用法,但是还是又一些技巧性的问题尚待解决,例如:
1.能否直接使用write函数存储整个类.如:sampleclasss.FStream.write(sampleclass,sizeof(sampleclass));
2.如果想编写一个控件能够直接读写固定格式的文件该怎样做,为什么按照预定格式顺序使用seek, read语句无法读出文件内容.
3.我想了解文件存储在硬盘上和在内存中是否有不同,如有不同是什么?
谢谢各位大虾指点!
JGTM2000 2000-09-08
  • 打赏
  • 举报
回复
你先仔细看这几个类的源码,然后想,一定会有所悟的。:)
先给你打打气,答案是可以,而且很容易。
iforever 2000-09-08
  • 打赏
  • 举报
回复
看看我给的这一段代码

procedure TfrmOleMDIParent.FormShow(Sender: TObject);
var
i: Integer;
memStr: TMemoryStream;
begin
frmGenReportRWer:=nil;
Rights:='R';
DocModel:='';

if ParamCount>1 then
begin
bLocalFile:=false;
bNewReport:=true;
if ParamStr(1)='readreport' then bNewReport:=false;
filename:=ParamStr(2);
Rights:=ParamStr(3);
if (Rights='W') or (Rights='w') then
begin
for i:=0 to MainMenu1.Items[0].Count-1 do
begin
MainMenu1.Items[0].Items[i].Enabled:=true;
end;
end;
end;

if ParamCount<=1 then
begin
bNewReport:=true;
ShowMessage('外部未传入远程存放路径信息!');
end;

if bNewReport then
begin
memStr:=TMemoryStream.Create;
memStr:=aBDSrv.BlobData2Stream(filename);
if memStr.Size>0 then bNewReport:=false;
memStr.Free;
if bNewReport then
begin
frmReportChoose:=TfrmReportChoose.Create(Self);
frmReportChoose.ShowModal;
DocModel:=frmReportChoose.SelectedURL;
frmReportChoose.Free;
end;
end;

frmGenReportRWer:=TfrmGenReportRWer.Create(Self);
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧