問題タブ [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 ストリームを上書きするバイトストリームを作成する
私がやっていることの背景:
Microsoft OLE 構造化ストレージ ファイル タイプを読み書きするプロセスを開発するために、Python 3 でプログラムを作成しています。ユーザーが tkinter、PySimpleGUI を使用して読み書きするストレージとストリームを選択できるシンプルな GUI を作成できます。私は olefile、pandas、および numpy パッケージを使用してほとんどのプログラムのレッグワークを実行していますが、olefile で次のような既知の問題に遭遇しました。
書き込まれるバイトストリームのサイズは、OLE ファイル内の既存のバイトストリームと同じサイズでなければなりません。これは、プログラムのデバッグを開始してから比較的すぐに問題になりました。
私は何をする必要がありますか?
主要なプログラミング サイトを徹底的に調査し、Win32 での Python プログラミング (具体的には COM ストレージで Ch12 を読む) という本を購入しました。私は行き止まりに陥ってしまいました。
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 に読み込む
次のステートメントは、等しいサイズの ByteString のみを許可します
ValueError: write_stream: データは既存のストリームと同じサイズでなければなりません
編集:
この質問は、以下のコメントで Decalade によって回答されました。私の問題を解決するために使用したコードは次のとおりです。