读取 ASCII 文件 TAB 替换为 NULL

发布于 2024-08-04 07:16:33 字数 547 浏览 5 评论 0原文

我在 Visual C++ 2008 中使用 CreateFileA 和 ReadFile 打开 ASCII 文本文件并将其读入内存。这工作正常(我可以查看内存中的内容),但有一个例外。由于某种原因,制表符 (0x09) 被更改为 NULL (0x00)。不用说,当我尝试解析文件时,这会造成严重破坏。有谁知道可能是什么原因造成的,或者我该如何解决它?

这就是我打开文件的方式:

hHandle = CreateFileA( pPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
GetFileSizeEx( hHandle, &tFileSize );
pBuf = (UINT8 *)malloc( tFileSize.LowPart );
ReadFile( hHandle, pBuf, tFileSize.LowPart, &dwBytesRead, NULL );

我的项目代码具有强大的错误处理功能,并且我没有收到任何错误。任何建议将不胜感激。

谢谢。

I'm using CreateFileA and ReadFile in Visual C++ 2008 to open and read an ASCII text file into memory. This works okay (I can view its contents in memory), but with one exception. For some reason the TAB characters (0x09) are being changed to NULLs (0x00). Needless to say, this is wreaking havoc when I try to parse the file. Does anybody know what might be causing this, or how I can fix it?

This is how I'm opening the file:

hHandle = CreateFileA( pPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
GetFileSizeEx( hHandle, &tFileSize );
pBuf = (UINT8 *)malloc( tFileSize.LowPart );
ReadFile( hHandle, pBuf, tFileSize.LowPart, &dwBytesRead, NULL );

My project code has robust error-handling, and I'm not getting any errors. Any suggestions would be appreciated.

Thanks.

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

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

发布评论

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

评论(1

心如狂蝶 2024-08-11 07:16:33

这看起来确实不太可能。您是否使用过其他工具来检查磁盘上的文件,并验证制表符是否存在?

This seems really unlikely. Have you used some other tool to examine the file on-disk, and verify that the tab characters are there?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文