倾家荡产,请求大虾帮助!!!!!!!(215分)

  • 主题发起人 主题发起人 yyx9606
  • 开始时间 开始时间
Y

yyx9606

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Rxrichedit组件写一段程序想把数据库中的MEMO字段逐条读出并存到一个文件之中并希望是以格式化的样式存储,以下是我的一段代码,我用Assign命令但后面的总是覆盖前面的,用别的命令又无法读bolb字段,而且我想区分文本和图象,非常着急,望各位高手指点。
while tx=dm1.table_paper.fieldbyname('tx').value do
begin
myrichedit.lines.add(inttostr(number)+'、'+'('+dm1.table_paper.fieldbyname('fz').asstring+')');
myrichedit.lines.Assign(tblobfield(dm1.table_paper.FieldByName('as')));
number:=number+1;
dm1.table_paper.next;
end;
end;
myrichedit.lines.savetofile('answer1.rft');
 
这两句有何意图:
myrichedit.lines.add(inttostr(number)+'、'+'('+dm1.table_paper.fieldbyname('fz').asstring+')');
myrichedit.lines.Assign(tblobfield(dm1.table_paper.FieldByName('as')));
???
 
yyx?xjtu?
因为你每次assign将上一次的内容覆盖了.

可以试试下面的程序,应该能满足你的要求写到文件中去.不过没测试过.:-))
F := TFileStream.Create('answer1.rtf',fmOpenWrite or fmShareDenyWrite);
tmpStream :=TStream.Create;
try
while tx=dm1.table_paper.fieldbyname('tx').value do
begin
str1 := inttostr(number)+'、'+'('+dm1.table_paper.fieldbyname('fz').asstring+')';
F.WriteBuffer(Str1,Length(Str1));
(dm1.table_paper.FieldByName('as') as TBlobField).SaveToStream(tmpStream);
F.CopyFrom(tmpStream,tmpStream.Count);
number:=number+1;
dm1.table_paper.next;
end;
end;
finally
tmpstream.Free;
tmpStream := nil;
F.Free;
F := nil;
end;

 
我是一下ReeTed 的答案
 
我是一下ReeTed 的答案
 
很简单
使用delphi中的DBrichedit可以了
 
不要每次都“assign”
 
接受答案了.
 
后退
顶部