问题标签 [structured-storage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-3.x - Python:编写字节流以覆盖现有的 Microsoft 结构化存储 OLE 流
我正在做的一些背景:
我正在用 Python 3 编写一个程序,希望开发一个读取和写入 Microsoft OLE 结构化存储文件类型的过程。我能够创建一个简单的 GUI,允许用户选择他们想要使用 tkinter、PySimpleGUI 读取和写入的存储和流。我正在使用 olefile、pandas 和 numpy 包来执行我的大部分程序,但我遇到了 olefile 的一个已知问题,即:
正在写入的字节流的大小必须与 OLE 文件中的现有字节流大小相同。在我开始调试程序后,这很快就成为了我的一个问题。
我需要做什么?
在对主要编程站点进行了广泛研究并购买了《Win32 上的 Python 编程》这本书(专门阅读了关于 COM 存储的第 12 章)之后;我让自己陷入了死胡同。
https://github.com/joxeankoret/nightmare/blob/master/mutators/OleFileIO_PL.py
https://github.com/decalage2/olefile/issues/6
https://github.com/decalage2/olefile/issues/95
https://github.com/decalage2/olefile/issues/99
以下是我正在使用的淡化代码:
数据被操纵,现在读回来。
使用 Pandas 将数据读入 DataFrame
以下语句只允许大小相等的 ByteStrings
ValueError:write_stream:数据必须与现有流的大小相同
编辑:
Decalade 在下面的评论中回答了这个问题。这是我用来解决问题的代码:
c++ - 检查内存缓冲区是否包含结构化存储文件数据
我需要检查内存缓冲区 BYTE* lpBuf 是否包含结构存储文件数据的数据。
目前我将缓冲区数据保存到一个临时文件中,然后使用 StgOpenStorage 打开该文件。如果打开成功,则该文件为结构化存储文件,否则不是。
有没有简单的方法来完成任务?
谢谢