现在需要能传送文件或数据库中的2进制流。请问各位朋友有什么办法吗?
解决方案 »
- 能不能用代码让菜单弹出?
- 事务、回滚的问题:一个函数里面有几个insert、delete表的操作,如果一个操作没成功,所有的操作都让它无效
- 学习中:在DELPHI中如何实现数据三层结构呀??能说详细点最好,谢谢!!比如说要用那些控件工程来做如DATAMODAL等
- 大家快来看啊,给出好的答案100分相送
- 请问如何使用Delphi绘制三维图形?
- 如何提取系统的256色的颜色表
- 紧急----dbgrid上的字段 ,有关picklist属性的问题
- 问:做一个组件,如何让属性在属性编辑器中有一个自设定的默认值?
- 请问这个问题???
- 单个连接的冲突问题,请大家进来看看
- 高手进:如何将一个长字符串写入Ms Sql 的BLOB字段,并读出来?(请注意:不是写文件,是字符串!)
- 懂组件编程的朋友请进。
function FileToVariant(FileName: String): OleVariant;
var
AStream: TFileStream;
MyBuffer: Pointer;
begin
AStream:=TFileStream.create(FileName,fmOpenRead);
try
aStream.Seek(0, soFromBeginning);
Result:=VarArraycreate([0, AStream.size-1], VarByte);
MyBuffer:=VarArrayLock(Result);
AStream.ReadBuffer(MyBuffer^, AStream.Size);
VarArrayUnlock(Result);
finally
AStream.Free;
end;
end;
procedure VariantToFile(FileName: String; var AVariant: OleVariant);
var
AStream: TFileStream;
MyBuffer: Pointer;
Size: Integer;
begin
AStream:=TFileStream.create(FileName,fmCreate);
try
aStream.Seek(0, soFromBeginning);
Size:=VarArrayHighBound(AVariant,1)-VarArrayLowBound(AVariant,1)+1;
MyBuffer:=VarArrayLock(AVariant);
AStream.WriteBuffer(MyBuffer^, Size);
VarArrayUnlock(AVariant);
finally
AStream.Free;
end;
end;