• ベストアンサー

データ読み込みについて

データ読み込みを読み込むときにメモ帳以外から読み込みたいのですがマイクロソフトのワード2000のワードファイルから読み込めませんでした。(下記の記述じゃ当然だめだった) テキストファイル以外から読み込むときの記述方法をおしえてください 読み込めなければそのむねを教えていただければ幸いです。 <ソース> #include<stdio.h> void main(){ FILE *fp; int i; char buf[256]; fp = fopen(ファイルのパス.拡張子,"r"); for(i=0;fgets(buf,256,fp)!=NULL;i++){ printf("%d行目:%s\n",i+1,buf); } printf("\n"); }

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

メモ帳で見れるファイル、つまり「人間が読める文字だけで作られてて、1行づつ区切られているファイル」を「テキストファイル」と言います。 ワードのファイルは「文章」と一緒に「ページの書式」や「文字の書式」などがバイナリで記録されていて、しかも、文章の文字コードがUNICODEになっているので、テキストファイルではありません。 なので「ファイルをバイナリモードで読んで、1バイト目にあるバイナリデータは何を意味するか、2バイト目にあるバイナリデータは何を意味するか、と言うように、ファイルの最後まで順に解析しながら読み込む」と言う事をしないと、内容を画面に表示する事が出来ません。 で、そういう「解析しながら内容を画面に表示」して、編集と印刷も可能にしているプログラムが「マイクロソフトのワード2000」なのです。 つまり「ワードのファイルを読み込んで表示するには、マイクロソフトのワード2000がやってる事と全く同じ事をやらないといけない」と言う事。 「マイクロソフトのワード2000がやってる事と全く同じ事」をここで説明するのは不可能ですし「ワード2000がやってる事」を完全に知り尽くしてるのは「マイクロソフトのワード2000を作った人達だけ」です。 結論は 「読み込むだけは可能だが、内容の表示は不可能」 です。

ilice
質問者

お礼

>ワードのファイルを読み込んで表示するには、マイクロソフトのワード2000がやってる事と全く同じ事をやらないといけない そうだったのですか、テキストファイルと同様に記述されていると考えていたのですが考え方がまちがっていたんですね ご回答ありがとうございました

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

読み込むだけなら読み込めますが中身を見てもちんぷんかんぷんですよ。 ファイルフォーマットが分かっていてそのとおりに処理すれば解読できますが(当然ワード自体はそうやっているわけで)。

ilice
質問者

お礼

回答ありがとうございました ファイルフォーマットがあるのを忘れていました(^^; ファイルフォーマットなんて作った人くらいしかわかりませんよね

すると、全ての回答が全文表示されます。