首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TFileStream创建文本文件

使用TFileStream创建文本文件
EN

Stack Overflow用户
提问于 2020-06-13 05:48:10
回答 2查看 624关注 0票数 0

我尝试了以下文档中的代码:

读取字符串并将其写入文件

但它不起作用,并报告编译器错误:

在“fmCreate”中没有一个名为“System::AnsiStringT<0>”的成员

下面是我尝试过的代码:

代码语言:javascript
复制
TFileStream *fs; const AnsiString str = "Hello";
fs = new TFileStream("temp.txt", fmCreate);
fs->Write ((void*)str.c_str(), str.fmCreate);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-13 06:25:15

看上去就像个打字机。显然,代码试图将字符串写入文件,因此需要字符串的长度。尝尝这个

代码语言:javascript
复制
TFileStream *fs; const AnsiString str = "Hello";
fs = new TFileStream("temp.txt", fmCreate);
fs->Write ((void*)str.c_str(), str.Length());

我对VCL一无所知。

票数 2
EN

Stack Overflow用户

发布于 2020-06-13 19:23:58

正如John的回答所述,文档中有一个错误。str.fmCreate应该改为str.Length()

但是,有更好的方法可以将字符串写入文本文件以避免此问题。例如,使用System::Classes::TStreamWriterSystem::Ioutils::TFile代替,如:

代码语言:javascript
复制
#include <System.Classes.hpp>

const String str = _D("Hello");
TStreamWriter *sw = new TStreamWriter(_D("temp.txt"), false, TEncoding::UTF8);
sw->Write (str);
delete sw;
代码语言:javascript
复制
#include <System.IOUtils.hpp>

const String str = _D("Hello");
TFile::WriteAllText(_D("temp.txt"), str);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62356033

复制
相关文章

相似问题

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