现要用delphi读取.dbf表中Memo字段的内容,由于该字段内容中可能含有控制符(因为是经过加密的),Delphi中无论是用了什么控件和方法都无法完整地读出其中的内容,就算是使用‘流’亦是如此。
但如果是在VFP中使用copy memo to file 就可以将内容保有存为文件,或使用repl命令亦可完成字段间的赋值。
用sql语句亦可在表中完成更新。可在delphi中根本就是无法取出内容,请大家帮帮忙啊!
但如果是在VFP中使用copy memo to file 就可以将内容保有存为文件,或使用repl命令亦可完成字段间的赋值。
用sql语句亦可在表中完成更新。可在delphi中根本就是无法取出内容,请大家帮帮忙啊!
还有,你是用ADO还是BDE呢?
如果不行还可以用RXLIB里的RXRICHEDIT
WWW。51DELPHI。COM有下载
我在2000下可以用流读取并保存成文件,但文件大小比VFP保存的文件小。我现在要应用的是调用一DLL中的函数将此文件转换成一位图文件,如果文件是用VFP保存的则没问题。但奇怪的是,即使直将VFP保存的文件打开后复制到另一文件中保存,用此文件也无法进行转换。必需用原VFP保存的文件。我已经试了很多方法了,但都是不行的。不知道VFP的copy memo to file是如何将Memo字段的内容保存成文件的?
不知为什么
可能是BUG
我以前用得内存流也是不正确
明明写入的buffer是对的
但读出的东西就是不对
检查流的内存内容也不正确
根本不等于buffer的内容
不过memo可以用asstring读出来的然后保存到stringlist中
存成文件
看看行不行
我改用BDE就可以了,但不知为何ADO读出的流是错误的???如果不想使用BDE又将使用什么控件或方法呢?欢迎探讨!另外
就算使用的是BDE也只是保存成文件才能正确地读出流的内容,而其他控件就算用LoadFromStream也是无法正确显示其内容。因为在流中可能包含了控制字符。
预处理对编程会带来一些麻烦,也会使你的数据冗余变大,但是它所带来的在兼容性方面的好处还是很值为此得花些代价的.而且现在的CPU,HDD都够快,够大,预处理的那些缺点应该不成问题.
SourceStream: TMemoryStream;
begin
try
SourceStream := TMemoryStream.Create;
try (query1.FieldByName('carve_info') as TBlobField).SaveToStream(SourceStream); except
ShowMessage('图像流读取失败');
end; if SourceStream.Size > 0 then
begin
SourceStream.Position := 0;
SourceStream.SaveToFile('kkk.bin'); //保存成文件待用
memo1.Lines.LoadFromStream(SourceStream);
end; finally
SourceStream.Free;
end;
end;