首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >写信给TFileStream

写信给TFileStream
EN

Stack Overflow用户
提问于 2022-10-23 20:38:51
回答 1查看 82关注 0票数 0

试图将字符写入TFileStream。文件里有三个垃圾字符。我做错了什么?

代码语言:javascript
复制
var sss: AnsiString;
var S : TFileStream;
S := TFileStream.Create(FileName,fmCreate);
S.Position := S.Size;
sss := '444';
S.Write(sss,3);
S.Free;
EN

回答 1

Stack Overflow用户

发布于 2022-10-24 01:09:14

AnsiString被实现为指向其字符数据的指针。Write()接受要写入的数据的var引用。因此,您将指针本身写入文件,而不是指向的字符。

您需要取消引用指针(即索引到字符串),以获得对第一个字符的引用,例如:

代码语言:javascript
复制
S.Write(sss[1], Length(sss));

另一种选择是:

代码语言:javascript
复制
S.Write(PAnsiChar(sss)^, Length(sss));

尽管如此,Delphi2009和以后的版本都有一个TStreamWriter类,可以简化此任务:

代码语言:javascript
复制
var S : TStreamWriter;
S := TStreamWriter.Create(FileName);
S.Write('444');
S.Free;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74174599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档