读取在python中使用C++生成器创建的文件

Read file created with C++ builder in python

本文关键字:创建 文件 C++ python 读取      更新时间:2023-10-16

生成器中有一个创建带有数据的函数C++文件:

int HandleFile;
if (!FileExists(fnm))
 {HandleFile = FileCreate(fnm);FileClose(HandleFile);}
HandleFile = FileOpen(fnm,fmOpenWrite);
if(! HandleFile) {return 0;}
AnsiString str = IntToStr(num)+"#" +IntToStr( GetLastError() )+": "+ AnsiLastError();
FileSeek(HandleFile,0,2);
FileWrite(HandleFile, &str, sizeof(str));
FileClose(HandleFile);
return 1;

有没有办法在python中读取它?当我通过记事本打开文件时,我只看到无法识别的符号

FileWrite(HandleFile, &str, sizeof(str));

不正确。

FileWrite需要一个指向原始缓冲区的指针,并将缓冲区的x字节写入HandleFile给出的文件。

AnsiString对象包含一个指向存储所有数据(以及一些其他变量)的堆的指针。所以sizeof(str) != str.Length()&str != str.c_str().

你应该写这样的东西:

FileWrite(HandleFile, str.c_str(), str.Length());

无论如何,看看TStringList,这可能是你需要的。