如何使用 Unicode 中的 CFile::Read() 从文件中获取 CString 对象?

发布于 2024-08-05 20:48:03 字数 268 浏览 4 评论 0原文

字符集是 Unicode。我想将一个CString类型的字符串写入一个文件,然后再从文件中读出。 我使用 CFile::Write() 方法将字符串写入文件:

int nLen = strSample.GetLength()*sizeof(TCHAR);
file.Write(strSample.GetBuffer(), nLen);

问题是:我想从包含 strSample 内容的文件中获取 CString。我该怎么做呢?

非常感谢!

The charset is Unicode. I want to write a string of CString type into a file, and then read it out from the file afterwards.
I write the string into a file with CFile::Write() method:

int nLen = strSample.GetLength()*sizeof(TCHAR);
file.Write(strSample.GetBuffer(), nLen);

Here is the question: I want to obtain the CString from the file containing the content of strSample. How can I do it?

Thank you very much!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏九 2024-08-12 20:48:03
UINT nBytes = (UINT)file.GetLength();
int nChars = nBytes / sizeof(TCHAR);
nBytes = file.Read(strSample.GetBuffer(nChars), nBytes);
strSample.ReleaseBuffer(nChars);
UINT nBytes = (UINT)file.GetLength();
int nChars = nBytes / sizeof(TCHAR);
nBytes = file.Read(strSample.GetBuffer(nChars), nBytes);
strSample.ReleaseBuffer(nChars);
你的他你的她 2024-08-12 20:48:03

末尾添加 '\0'

我认为您忘记在strSample.GetLength() + 1

I think you forgot to include the '\0' at the end

strSample.GetLength() + 1

一个人的夜不怕黑 2024-08-12 20:48:03

我会尝试这个,因为文件可能比读取的文件大(DOS 风格的结束行)。 Read 不会设置最终的 \0,但 ReleaseBuffer 显然会设置,如果不使用 -1 调用的话。

UINT nBytes = (UINT)file.GetLength();
UINT nBytesRead = file.Read(strSample.GetBuffer(nBytes+1), nBytes);
strSample.ReleaseBuffer(nBytesRead);

I would try this, since it can be that the file is larger than what is read (DOS style end line). Read does not set the final \0, but ReleaseBuffer apparently does, if not called with -1.

UINT nBytes = (UINT)file.GetLength();
UINT nBytesRead = file.Read(strSample.GetBuffer(nBytes+1), nBytes);
strSample.ReleaseBuffer(nBytesRead);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文