在Delphi文件传送及OleVariant问题?(200分)

  • 主题发起人 主题发起人 太阳河上
  • 开始时间 开始时间

太阳河上

Unregistered / Unconfirmed
GUEST, unregistred user!
高手们:
1.在局网中Delphi是如何传送文件的?有几种方法?各方法的优缺点?
2.OleVariant是什么结构?如何TFileStream存在OleVariant:如下:
var s: String;
tfs: TFileStream;
Ov: OleVariant;
begin
s:='12345';
Ov:=s;
tfs:=TFileStream.Create('c:/wer.exe',fmOpenRead);
Ov:=tfs;//无法执行
end;
 
1.传送文件一般使用socket(tcp/ip),Ftp,udp等方式。
2.OleVariant是ole对象的变量,跟TFilestream对象不一样,所以不能直接赋值。
 
任我行_zq:
你好,能说清楚点吗:如何把TFilestream赋给OleVariant?
我不想用Ftp,udp来传送文件,而是想用OleVariant来传送文件。
我曾用udp,但udp不进行检查,传送不成功也没有提示。 socket(tcp/ip)不能传送太大文件,能详细说说吗
 
是否希望通过Midas传送?
 
在STREAM和OLEVARIANT之间做转换好了。
 
是否希望通过Midas传送?
 
函数如下:
function StreamToVariant (Stream : TMemoryStream):olevariant;
var
p : pointer;
v : olevariant;
begin
v := VarArrayCreate ([0, Stream.Size - 1], varByte);
p := VarArrayLock (v);
Stream.Position := 0;
Stream.Read (p^, Stream.Size);
VarArrayUnlock (v);
result:=v;
end;
 
是呀,我是想是通过Midas传送,不知速度如何?
 
whhtao你好:
但在客户端如何做才能读回来?我做了一下不行
 
太阳河上:
在客户端要进行反转,将OLEVARIANTL转回VARIANT.
 
后退
顶部