如何将字符串写入file类型的文件? ( 积分: 50 )

  • 主题发起人 主题发起人 CGN
  • 开始时间 开始时间
C

CGN

Unregistered / Unconfirmed
GUEST, unregistred user!
如果是textfile类型的文件可以用write(f,'字符串')来写入,但是file类型的就提示:[Error] Unit1.pas(206): Incompatible types: 'procedure, untyped pointer or untyped parameter' and 'String'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'
本人菜鸟,那位高手能解答一下?
 
write只能用于TextFile或结构文件
二进制文件用BlockWrite
BlockWrite(f, PChar(字符串变量), 长度);
 
试了一下
AssignFile(ToF,'cmp.txt');
Rewrite(ToF);
blockwrite(ToF,s,length(s));
closefile(ToF);
结果出现错误对话框:I/O error 1784.不知道错在哪里。
 
改进了一下:
s:='hello';
AssignFile(ToF,'cmp.txt');
Rewrite(ToF,1);
blockwrite(ToF,s,length(s));
closefile(ToF);
但是查看cmp.txt却看到这个:"XbE L",而不是想要的"hello",这是为什么呢?
 
AssignFile(ToF,'cmp.txt');
Rewrite(ToF, 1)
//要指定大小
blockwrite(ToF,s[1],length(s))
// or blockwrite(ToF,pchar(s)^,length(s))
closefile(ToF);
 
var
mytablefile:TextFile;
filestr,tablename:string;
begin
filestr:=ExtractFilePath(application.ExeName)+TableNM;
AssignFile(mytablefile, filestr);
append(mytablefile);//先加一行呀﹐﹐
writeln(mytablefile,tablename);
end;
記得給分哈
 
原来如此,s[1]和pchar(s)^都指向s的第一个字符的地址,从这个地址开始装读取数据才是正确的。Thank you,ysai!!
 
帮顶,接个分撒
 
后退
顶部