SOS:这个问题似乎有些难,欢迎大家看看。说不定你也遇到过! ( 积分: 100 )

  • 主题发起人 主题发起人 dongfz
  • 开始时间 开始时间
D

dongfz

Unregistered / Unconfirmed
GUEST, unregistred user!
有几个函数(原来dos下面c写的)
其中一个打开一个文件,返回文件句柄
另外一个通过文件句柄和文件当前位置读取相应的信息(有可能别的函数改变了文件指针的位置)。
问题是:
如果使用createfile/readfile方式,不能获得当前文件的偏移量(至少我不知道)
如果使用文件读写方式,第一个函数返回的应该是文件变量,比如,常见的写法可能为
Type BFile=file of byte
function openf(fn:string): BFile;
var f:BFile;
begin
assignfile(f,fn);
result:=f;
end;
但是delphi不允许返回值为文件。
大家看看,应该怎么解决,或者提供另外一种解决思路。谢谢大家
 
有几个函数(原来dos下面c写的)
其中一个打开一个文件,返回文件句柄
另外一个通过文件句柄和文件当前位置读取相应的信息(有可能别的函数改变了文件指针的位置)。
问题是:
如果使用createfile/readfile方式,不能获得当前文件的偏移量(至少我不知道)
如果使用文件读写方式,第一个函数返回的应该是文件变量,比如,常见的写法可能为
Type BFile=file of byte
function openf(fn:string): BFile;
var f:BFile;
begin
assignfile(f,fn);
result:=f;
end;
但是delphi不允许返回值为文件。
大家看看,应该怎么解决,或者提供另外一种解决思路。谢谢大家
 
没试过,
assignfile(result,fn);试过吗?
 
不行呀。函数申明就通不过。
 
方法多的如牛毛,答案天下一大堆,自己找找吧.

我还以为什么难题.
 
方法多的如牛毛,答案天下一大堆,自己找找吧.

我还以为什么难题.



那你就拔一根牛毛出来让我们看看啊。[:D]
 
试一下如下:

Type BFile=file of byte

public
bf : BFile;

function openf(var bf : BFile;fn:String): boolean;
begin
assignfile(bf,fn);
Result := true;
end;
 
后退
顶部