怎么得到文件的指针啊?就像C++中的fopen函数,返回指针。(100分)

  • 主题发起人 主题发起人 wulengbing
  • 开始时间 开始时间
W

wulengbing

Unregistered / Unconfirmed
GUEST, unregistred user!
找了半天也没有找到打开文件的指针。有个程序需要把C++转成Delphi.不知道 fopen函数在delphi中怎么写?
 
查Assigned
或FileOpen
 
FileOpen返回的就是文件句柄。对应所谓的C的文件指针。
 
FOPEN属于低级函数了
WIN32中应该使用CREATEFILE了
 
到底谁说的对啊?能不能给我确切答案
 
你把原代码放出来,大伙看看,应该如何翻译
 
//打开文件
AssignFile(f,'C:/SH000002.dat');
Reset(f);
FileHandle := FileOpen('C:/SH000002.dat', fmOpenReadWrite or fmShareDenyNone);
MapHandle := CreateFileMapping(FileHandle,nil,Page_ReadWrite,0,FileSize(f),'test');
Buf := MapViewOfFile(MapHandle,File_Map_All_Access,0,0,0);
//填充文件类型
filehead.m_dwAttrib := News_Sha_Ex;
filehead.m_dwLen := FileSize(f);
filehead.m_szFileName := 'C://SH000002.dat';

glparm.m_wDataType := FILE_NEWS_EX;
glparm.m_nPacketNum := 1;
glparm.m_File := filehead;
glparm.m_bDISK := False;
glparm.m_pData := Buf;
//发送消息
SendMessage(RecForm,Msg_StkData,RCV_FILEDATA,Longint(@glparm));
UnMapViewOfFile(Buf);
CloseHandle(MapHandle);
CloseFile(f);
我用了文件映射,谁有更简单的方法?
 
Delphi里面如果读取二进制文件,一般采用BlockRead,是按块读取的,比如
BlockRead(F, Buff, 3);Buff可以是结构体
对应的fopen为
AssignFile(f, 'FileName');
 
后退
顶部