我在CBuilder中,使用FileOpen,FileClose,FileSeek,FileRead,FileWrite等函数的时候一直都没有出现问题,可是在Delphi中却好像这些函数都没有作用似的?虽然例子里面的程序和CBuilder中相差不多,但是即使拷贝过去也不可用,请问一下,除了用File类型,使用Reset来打开和操作函数外,FileOpen之类的怎样才能可用?多谢!!
解决方案 »
- Windows7如何获取系统的CPU使用率?
- 怎样生成网页?
- 奇文!《随便说说有关教育的问题》
- 调用.chm帮助文件的问题
- 在程序里面,用ADOConnection控件的什么属性可以判断连接是否成功呢?
- 怎么只刷新 adoDataSet 的一条记录? 因为俺只更新了这一条记录的值
- 通过 delphi 编程将bmp格式文件(背景为纯色背景)转成gif或png图片(纯色背景透明)。
- 工作没有,手机今天也没有,深圳,想哭
- 我想做一个工艺品制造企业的软件,想先做一个问卷调查,该问些什么问题呢?
- 笨懒猫紧急求救?
- Delphi如何执行sql命令文件?
- 如何在DELPHI开发的程序中使用MS SQL SERVER 带的客户端网络实用工具访问后台数据库?(SYBASE或其他的数据库)
h:thandle;
size:integer;
begin
h:=fileopen('c:\123.txt',fmopenread);
if h <> invalid_handle_value then
begin
size:=getfilesize(h,nil);
showmessage('檔案大小:'+inttostr(size));
closehandle(h);
int FileHandle,FileSize;
char *Buffer;
AnsiString Text;
FileHandle=FileOpen("c:\a.txt",fmOpenRead);
Buffer=new char[5];
FileRead(FileHandle,Buffer,4);
Text.SetLength(4);
Text[1]=Buffer[0];
Text[2]=Buffer[1];
Text[3]=Buffer[2];
Text[4]=Buffer[3];
ShowMessage(Text);
这样可以得到a.txt中前四个字节的内容。
但Delphi中,用类似的语句却无法得到这四个字节的内容?
链接不会出错,但是运行的时候,提示出错。
var
FileHandle:integer;
Buffer:PChar;
Text:String;
Begin
FileHandle:=FileOpen('c:\a.txt',fmOpenRead);
Buffer := PChar(AllocMem(5));
FileRead(FileHandle,Buffer,4);
SetLength(Text,4);
Text[1]:=Buffer[0];//----(1)---
Text[2]:=Buffer[1];
Text[3]:=Buffer[2];
Text[4]:=Buffer[3];
ShowMessage(Text);
我用F7执行到(1)处就出现错误
改为:FileRead(FileHandle,Buffer^,4);
Buffer:= AllocMem(5);不用强制转换