BlockWrite(F,StrPas(Buffer),length(StrPas(Buffer)));报错:Variable required ( 积分: 1

  • 主题发起人 主题发起人 handsome1234
  • 开始时间 开始时间
H

handsome1234

Unregistered / Unconfirmed
GUEST, unregistred user!
BlockWrite(F,StrPas(Buffer),length(StrPas(Buffer)));报错:Variable required ( 积分: 100 )<br />BlockWrite(F,StrPas(Buffer),length(StrPas(Buffer)));报错:Variable required
参数类型:Buffer: Pointer;
BlockWrite帮助上这么说:
Writes one or more records from a variable to an open file.
Unit
System
Category
I/O routines
procedure BlockWrite(var f: File
var Buf
Count: Integer [
var AmtTransferred: Integer]);

我也看不出来我错那?
 
BlockWrite(F,StrPas(Buffer),length(StrPas(Buffer)));报错:Variable required
参数类型:Buffer: Pointer;
BlockWrite帮助上这么说:
Writes one or more records from a variable to an open file.
Unit
System
Category
I/O routines
procedure BlockWrite(var f: File
var Buf
Count: Integer [
var AmtTransferred: Integer]);

我也看不出来我错那?
 
是StrPas(Buffer)这个参数的问题,StrPas函数返回的是一个Ansi的字符串,也就是说是一个常量,而BlockWrite函数需要的是一个变量。我看帮助里的Example好像是定义了一个Buf:Array[1..2048] of char;然后把Buf作为这里的参数传进去的。其余应该会改了吧。
 
如都是 说明是C 的格式,
那 Buffer 这个参数应该可以用指针。
 
先定义:
inttest:integer;
ERString:String;
TempString:String;
调用时改成:
TempString:=StrPas(Buffer);
inttest:=length(StrPas(Buffer));
BlockWrite(F,TempString,inttest);

觉得delphi有点问题,很难理解
 
BlockWrite(F,Buffer^,length(StrPas(Buffer)));
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
485
import
I
I
回复
0
查看
562
import
I
I
回复
0
查看
976
import
I
后退
顶部