プロが教える店舗&オフィスのセキュリティ対策術

初めまして。C言語のプログラミングに詳しい方、よろしくお願いします。
C言語のプログラミングで、htmlファイルのタグで挟まれた部分を切り出すようなものを作りたいのですが...

具体的に言いますと、
例えば、気象庁のデータ(八王子の2008年5月1日の1時間ごとの値)のページをhtmlソースで保存したもの(ここでは5_1.htmlと名前をつけたとします)をあらかじめ用意しておき、fopenなどで開き、1行づつ見ていき、表の中のデータを整理して保存したいのです。

まずは、表の"1時"の部分のデータから、降水量(0.0)、気温(13.9)、風速(1.6)、風向(西北西)の4つを取り出し(5_1.htmlの87行目)、別の、例えばテキストファイル(5.txtと名前をつけると考えて)に、

08,05,01,01,0.0,13.9,1.6,西北西

のように、年,月,日,時間,降水量,気温,風速,風向というように書き出したいのです。

さらに、表の"2時"から"24時"の部分も同様に(5_1.htmlの110行目まで)、上のような形式で、次の行に順に、

08,05,01,01,0.0,13.9,1.6,西北西
08,05,01,02,0.0,13.4,1.2,西北
...
...
...
08,05,01,24,0.0,16.7,1.7,西北西

のようにしていきたいのです。
24時まで終わると、次の日のデータ(あらかじめ5_2.htmlとして保存しています)を読み込み、"1時"のデータから順に、1日目の"24時"のデータの次の行に書き出していきたいのです。
(最終的には5/31(5_31.html)の24時までのデータを5.txtにすべて書き出したいのです。)

C言語の知識はあまりないので、サンプルプログラムなどを提示していただけたら幸いです。それを参考に勉強していきたいと思っています。

下手糞で見づらい文章になってしまい、すみません。
C言語のプログラミングに詳しい方、よろしくお願いします。

(5_1.htmlは、気象庁の過去の気象データ検索から、八王子の2008年5月1日の1時間ごとの値を選択したものです。

http://www.data.jma.go.jp/obd/stats/etrn/view/ho …
右クリック→ソースの表示→上書き保存→HTMLソースで保存したものです。)

A 回答 (3件)

こんにちは。



直接の回答でなくてすみません。

Excelをお持ちでしたら、という前提で、
ご質問のリンク先のデータを保存するのでしたら、

 1)ブラウザ上でデータ範囲をマウスで選択する。
   ・選択範囲が反転表示された状態になります。
 2)マウスの右クリックメニューよりコピーする
 3)Excelを起動する。
   ・シートが新規作成された状態にします。
   ・かつ、A1セルが選択された状態にします。
 4)Excelの「編集」メニューより「貼り付け」を行う。
   ・シートにデータが貼り付けられます。
 5)必要ならデータを加工する。
 6)ExcelでデータをCSV形式ファイルで保存する。

 ※また、リンク先サイトのページを保存する際は、ブラウザ上で
  「ファイル」メニューより「名前を付けて保存」を選択し、
  ファイルの種類を「HTMLのみ」にして保存した方が楽かもしれ
  ません。
 ※ローカルに保存したHTMLファイルをブラウザで開いてから、
  上記の作業を行うという方法もあります。

という作業でデータをCSV形式のテキストファイルにしてからの方が、
C/C++のプログラムから扱い易いと思いますが如何でしょうか?

CSV形式ならカンマ区切りのみでデータを抜き出していけば良いので、
html形式のデータを扱うよりも処理が楽になるかと思います。

宜しければ検討してみては如何でしょう?

まあ、Excelを使うなら、C/C++のプログラムを使わずに、Excelだけで
処理を行うという方法も考えられますが。。。
    • good
    • 0

環境がかかれてないけど、DOMを使うという方法もありそう。


VSの場合、C++からだとちょっと面倒かも。
C#とかからのほうが簡単。

この回答への補足

回答ありがとうございます。
環境はwindows xpで、Borland C++ 5.5というものを使おうと思っています。
よろしくお願いします。

補足日時:2009/10/26 20:20
    • good
    • 0

「ど~しても C じゃないとダメ」というのでなければ (かつデータ量が膨大なものでなければ) 「テキスト処理に強い言語を使う」というのを選択肢に入れるべきだと思う.


awk とか Perl とか. 今だと Ruby とかもあり?

この回答への補足

回答ありがとうございます。
「どうしても」というわけではありませんが、Tacosanさんの回答の中から選ぶとすれば、Rubyです。
よろしくお願いします。

補足日時:2009/10/26 20:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!