2017-01-17 18 views
-1

私はいくつかのRTFファイルをテーブルに持っています。テーブルの内容をデータテーブルに入れる方法はありますか?または、テーブルをCSVに変換する方法はありますか?VB.Net:rtfファイルからテーブルを読み取る

+2

ファイルを読み取ることができる場合は、明らかに任意の数の方法で処理できます。リッチテキストファイルも例外ではありません。ファイル内のファイルがどこにあるか分かっている場合は、そのファイルが見つかるまで読んでから、探しているものに変換する作業を開始するだけです。ここでの本当の問題は、あなたがそのようなプロセスを書くことを試みたかどうかであり、もしそうであれば、あなたはそのプロセスでどんな問題を抱えているのかです。多分あなたは[ヘルプ]を読んで[ツアー]を取るべきです。 – Paul

+0

私はファイルからプレーンテキストを使って試しましたが、人間のためにフォーマットはほとんど読めません(私はそのままファイルを持っていなければなりません)。別の試みはRichTextBoxを取ることでしたが、もはや列がありませんでした。私の最後の試みは、Interop.Word.Applicationを介してファイルを開くことです。これは、これまで必要なものに対して機能するようです。 – muffi

+0

P .:ヘルプセンターやツアーの必要はありません。 – muffi

答えて

0

私はこれを部分回答としてのみ投稿します。完全ではありませんが、あなたが持っている問題を解決するために使用することができます。

document specified in my commentから私はRTFテーブル群がありません...

表の定義

このディテールを見つけました。代わりに、表は段落プロパティーとして指定されます。表は、一連の表行として表されます。表の行は、セルに分割された連続した一連の段落です。テーブル行は、\ trowd制御ワードで始まり、\ row制御ワードで終わります。テーブル行に含まれるすべての段落には、\ intbl制御語が指定されているか、前の段落から継承されている必要があります。セルには複数の段落があります。セルはセルマーク(セル制御ワード)で終了し、行は行マーク(\ row制御ワード)で終了します。テーブル行を配置することもできます。この場合、テーブル行のすべての段落には同じ位置決めコントロールが必要です(この仕様の位置指定オブジェクトとフレームのサブセクションのコントロールを参照してください)。テーブルプロパティは前の行から継承されるため、一連のテーブル行は単一によって導入。

あなたは以降のページ93からこの詳細を見つけることができますし、あなたが知っておくべきことの大部分を提供するように見えるん。

をこの時点から、あなたが文字列にファイルをお読みください

とそれに続く\trowdの出現ごとにそれを検索します(閉じる\rowコマンドを許可します)。これにより、RTFドキュメント内のすべてのテーブルをトラバースすることができます。テーブル内のデータを分析することで、要件に何が重要かを確認することができます。

+0

これは役に立ちます、ありがとうございます。これは別の眠れない夜です。私が解析しなければならない文書はコントロールとグループでいっぱいです(例えば、すべての行は{{\ trowd}のように始まり、すべての行には{{グループごとのコントロール - 残念ながら、\ intblと\ cellはその行のどこかにあります。再帰関数のような匂い...私は次の日にこれをコード化する答えを取る。現時点では、MSWordを開いている私のバージョンは非常に遅いですが、動作しています。 – muffi

+0

'.IndexOf'と' .SubString'はあなたの友人です! ; o) – Paul

関連する問題