2009-05-30 9 views
1

Text::Tableで作成されたテーブルがたくさんあるとします。 Perlのデータ構造に戻すためのパーサーが存在するのでしょうか、それとも自分で作成する必要がありますか?PerlのText :: Tableの出力用のパーサーがありますか?

+0

これは、「元のExcelスプレッドシートにデータを表示するために使用できるテキスト形式は何ですか?」という質問に関連していますか? (http://stackoverflow.com/questions/928513/what-text-format-can-i-use-to-present-data-originally-in-an-excel-spreadsheet) –

+0

ええ、私はおそらく私が考えていた何らかの形でText :: Tableを使うことができます。 –

答えて

2

多少畳み込まれているようです。情報をテーブルに変換する前に情報があった場合は、なぜそのプレゼンテーションフォームから解析しようとしますか?それは、テキストファイルを持って、それをラテックスに変換してから追記してから、追記ファイルからテキストを取り戻そうとするようなものです。

Text :: Tableの出力を解析する方法はありますが、ワークフローに欠陥があると思われます。私は元のデータ構造に自明に復元することができるYAMLのようなデータ(Text :: Table以外にも、実際にはそのようにしなければならない場合)のためのより簡単な出力を使用することを目指します。

+0

顧客は、人間と機械の両方が読むことができる表形式のデータ形式が必要です。 –

+0

それでは、ぜひYAMLを見てみましょう。それは正確に作られています。 – brunov

+0

いいえ、YAMLはプログラマが読める形式です。それはプログラマー以外の読者ではない。 :) –

0

'site:search.cpan.org'を実行すると、GoogleでText :: Table "parse"検索が実行されました。この目的でモジュールが見つかりませんでした。

2

Text :: Tableは、データプレゼンテーションを作成するためのモジュールです。格納および検索(すなわち、ファイルフォーマット)を目的とするものであれば、既存のテーブルを解析するためのメソッドを含む。

-1

出力する前にPerlをそのまま使用できます。そうすれば、一度印刷したものは、必要に応じて転載することができます。 Storable - またはYAML::Syckを参照してください.YAMLにダンプされます。あなたがStorableのためのフォーマットを持っていたら、あなたは可能性があります

  1. が要求された変更を確認するためにいくつかの標準的な形式を持っているでファイルを読み込みます。
  2. 変更された場合は書き戻してください。

ただし、YAMLを使用すると、YAMLファイルを変更するだけでも簡単です。 CSVを使用しないのはなぜ

--- !!perl/hash:Text::Table 
blank: ~ 
cols: 
    - 
    - Mercury 
    - Venus 
    - Earth 
    - Jupiter 
    - 
    - 2360 
    - 6110 
    - 6378 
    - 71030 
    - 
    - 3.7 
    - 5.1 
    - 5.52 
    - 1.3 
forms: 
    - "%s %s %s" 
    - "%s %s %s" 
lines: ~ 
spec: 
    - 
    align: auto 
    align_title: left 
    align_title_lines: left 
    sample: [] 

    title: 
     - Planet 
    - 
    align: auto 
    align_title: left 
    align_title_lines: left 
    sample: [] 

    title: 
     - Radius 
     - km 
    - 
    align: auto 
    align_title: left 
    align_title_lines: left 
    sample: [] 

    title: 
     - Density 
     - g/cm^3 
titles: 
    - 
    - Planet 
    - "  " 
    - 
    - Radius 
    - "km " 
    - 
    - Density 
    - "g/cm^3 " 
0

Text::Tableのために与えられた例えば

YAMLは、次のようになりますか?

さまざまな長さの列が多数ある場合、CSVは人間が判読できないほど正確ではありませんが、ピンチで行うことができます。

CSVについての良いことは、あらゆるスプレッドシート(​​他の多くのツールも)がCSVを解析して表示することです。

更新

ブライアン、OPからのコメントに基づいて

は、上記:

顧客は、人間と機械可読両方だ表形式のデータ形式を望んでいます。 - Horace Loeb May 31 at 3:30

私は彼が生産コードを消費コードとして管理していたと結論づけました。

私の答えは、「人間と機械の両方で読める形式は何ですか?」という質問に実際に答えています。

+0

彼はちょうど結果が、元のソースやデータではないように聞こえる。今、彼は後ろに行きたい。あなたが制御できないプログラムや、消えてからずっと長いプログラムの出力を解析する必要は珍しくありません。 –

関連する問題