3

[first_name] などの特殊なタグを含む .doc ファイルを受け取った場合、そのすべての出現箇所を "Clark" などに置き換えるにはどうすればよいですか? 単純なバイナリ置換は、置換文字列がまったく同じ長さである場合にのみ機能します。

Haskell、C、および C++ の回答が最適ですが、コンパイルされた言語であれば何でも構いません。WindowsとLinuxに展開する必要があり、クロスプラットフォームの依存関係の処理が面倒なので、外部ライブラリなしでこれを行うこともお勧めします。

要約する...

.doc -> magic program -> .doc with strings replaced
4

4 に答える 4

4

Windows で Word COM コンポーネント ("Word.Application") を使用して、ファイルを開き、置換を行い、ファイルを保存して閉じることができます。ただし、これは Windows 専用であり、バグが発生する可能性があります。

もう 1 つの方法として、OpenOffice.org コマンド ライン インターフェイスを使用してファイルを ODF 形式に変換し、ファイルを解凍し (ODF はほとんどが圧縮された XML です)、内部のファイルで置換し、ファイルを再圧縮し、再度圧縮することもできます。 -.doc 形式に変換します。ただし、OpenOffice.org は常に Word ファイルを正しく読み取るとは限らず (特に複雑な書式設定が多数ある場合)、配布が難しくなる可能性があります (ユーザーが OpenOffice.org を持っているか、プログラムと共に配布する必要があります)。

また、.docx 形式のファイルがある場合は、それを解凍し、置き換えて、再圧縮することができます。

于 2010-08-11T19:06:32.853 に答える
2

最初にWord 文書の仕様を読んでください。

それがあなたを怖がらせなかったなら、それを読み書きする方法を理解するのはかなり簡単であることがわかるはずです. それは可能でなければなりません。ほとんどの場合、Word はそれを行うことができます。

于 2010-08-11T19:07:05.327 に答える
1

おそらく、.Netプログラミング(VBまたはC#)を使用してのオブジェクトを作成してから、Word.ApplicationMSWordオブジェクトモデルを使用してドキュメントを操作する必要があります。

于 2010-08-11T19:00:32.210 に答える
0

なぜ C/C++/Haskell やその他のコンパイル済み言語を使いたいのですか? 私は Haskell にはあまり詳しくありませんが、一般的に言えば、C はテキスト処理を実行するのに適した言語ではありません。多くのインタープリター言語 (Perl、Python など) にも、フレーズの検索と置換に適した強力な正規表現ライブラリがあります。

そうは言っても、他の投稿者が指摘しているように、.doc 形式の偏心に対処する必要があります。

于 2010-08-11T20:14:07.453 に答える