| descartes-src (ソースパッケージ descartes-src-0.26.0.tar.gz) | 2012-09-09 20:57 |
| descartes-win (Windows用バイナリパッケージ descartes-win-0.26.0.zip) | 2012-09-09 20:52 |
| 会話キャラクター: ツンデレ アプリケーション (会話キャラ:ツンデレ v1.0 for Windows) | 2010-04-29 13:41 |
| 会話キャラクター: 2人の女の子 ダブルキャラクター (会話キャラクター 2人の女の子 ダブルキャラクター 1.0 for Windows) | 2011-10-02 22:23 |
| 会話キャラクター: Eliza風英語版 (会話キャラ:Eliza風英語版 v1.0 for Windows) | 2010-05-11 01:06 |
| 会話キャラクター: 猫耳メイド アプリケーション (会話キャラ:猫耳メイド v1.0 for Windows) | 2010-04-27 21:15 |
| 会話キャラクター: イライザ風日本語版 (会話キャラ:イライザ風日本語版 v1.0 for Windows) | 2010-04-30 21:53 |
| 経済指標表示プログラム for Windows (経済指標表示プログラム V1.0) | 2011-08-18 22:04 |
| ニュースヘッドライン表示プログラム (ニュースヘッドライン表示プログラム V1.0 for Windows) | 2011-08-16 12:31 |
| デカルト言語 example (デカルト言語の例題 example-0.7.0.zip) | 2009-03-01 19:47 |
| 電力状況表示プログラム for Windows (2011年夏版 全国電力供給状況表示プログラム V1.0) | 2011-08-15 13:25 |
全国の電力供給状況をインターネットの電力会社のWWWサイトから取得して使用率を計算してプログラムです。 およそ10分おきにデータの取得を行います。
このプログラムは、デカルト言語(http://sourceforge.jp/projects/descartes/) で書かれたプログラムであり、httpクライアント機能の例題として作成されました。
ここでは、Linux版のdenryoku.decを中心に説明します。
Wed Aug 3 20:37:21 2011 東北電力 ピーク時供給力 : 1199 万kW 使用量 : 973 万kW 使用率 : 81.151 % 東京電力 ピーク時供給力 : 5050 万kW 使用量 : 3665 万kW 使用率 : 72.5743 % 中部電力 ピーク時供給力 : 2388 万kW 使用量 : 1940 万kW 使用率 : 81.2395 % 関西電力 ピーク時供給力 : 2930 万kW 使用量 : 2271 万kW 使用率 : 77.5085 % 九州電力 ピーク時供給力 : 1714 万kW 使用量 : 1355 万kW 使用率 : 79.0548 %
#!/usr/local/bin/descartes
/*
* 2011年夏版 全国電力供給状況表示プログラム
*/
<init>
::sys <PrintResultOff>
;
<proxy #proxy>
(::sys <getenv #p http_proxy> | <is #p "">)
::sys <split #p1 #p "/">
( <eq #p1 ()> <is #proxy "">
|
::sys <car #p2 #p1>
<is "http:" #p2> ::sys <cadr #proxy #p1>
|
<is #proxy #p>
)
;
<checkheader #h>
::sys <splitline #h2 #h>
::sys <car #h3 #h2>
::sys <split #c1 #h3>
::sys <cadr #code #c1>
(<eq #code 200>
| <print #h3> <unknown>
)
;
// 東北電力
<tohoku #proxy #maxpower #power #rt>
::sys <httpget #h #b
"http://setsuden.tohoku-epco.co.jp/common/demand/juyo_tohoku.csv"
#proxy>
<checkheader #h>
::sys <iconv #bu #b "UTF-8" "SJIS">
::sys <splitline #t #bu>
::sys <caddr #x #t>
::sys <split #x2 #x ",">
::sys <cdar #maxpower ::sys <car _ #x2>>
<setVar power 0.0>
<for (#i 38 324)
::sys <split #data ::sys <nth _ #t #i> ",">
::sys <caddr #p #data>
(
::sys <length #n #data>
<compare #n == 2>
<power #power>
<break>
|
<setVar power #p>
)
>
<power #power>
<letf #rt = #power*100/#maxpower>
;
// 東京電力
<tokyo #proxy #maxpower #power #rt>
::sys <httpget #h #b "http://www.tepco.co.jp/forecast/html/images/juyo-j
.csv"
#proxy>
<checkheader #h>
::sys <iconv #bu #b "UTF-8" "SJIS">
::sys <splitline #t #bu>
::sys <caddr #x #t>
::sys <split #x2 #x ",">
::sys <cdar #maxpower ::sys <car _ #x2>>
<setVar power 0.0>
<for (#i 38 325)
::sys <split #data ::sys <nth _ #t #i> ",">
::sys <caddr #p #data>
(
::sys <length #n #data>
<compare #n == 2>
<power #power>
<break>
|
<setVar power #p>
)
>
<power #power>
<letf #rt = #power*100/#maxpower>
;
// 中部電力
<chubu #proxy #maxpower #power #rt>
::sys <httpget #h #b
"http://denki-yoho.chuden.jp/denki_yoho_content_data/juyo_cepco.csv"
#proxy>
<checkheader #h>
::sys <iconv #bu #b "UTF-8" "SJIS">
::sys <splitline #t #bu>
::sys <caddr #x #t>
::sys <split #x2 #x ",">
::sys <cdar #maxpower ::sys <car _ #x2>>
<for (#i 6 29)
::sys <split #data ::sys <nth _ #t #i> ",">
::sys <caddr #p #data>
(
<comparef #p == 0.0>
[<compare #i == 6>
::sys <split #data2 ::sys <nth _ #t 29> ",">
::sys <nth #p2 #data2 3>
<setVar power #p2>
]
<break>
|
<setVar power #p>
)
>
<power #power>
<letf #rt = #power*100/#maxpower>
;
// 関西電力
<kansai #proxy #maxpower #power #rt>
::sys <httpget #h #b
"http://www.kepco.co.jp/yamasou/juyo1_kansai.csv" #proxy>
<checkheader #h>
::sys <iconv #bu #b "UTF-8" "SJIS">
::sys <splitline #t #bu>
::sys <caddr #x #t>
::sys <split #x2 #x ",">
::sys <cdar #maxpower ::sys <car _ #x2>>
<for (#i 41 520)
::sys <split #data ::sys <nth _ #t #i> ",">
::sys <caddr #p #data>
(
<is #p ()>
<power #power>
<break>
|
<compare #i == 520>
<setVar power #p>
|
<setVar power #p>
)
>
<power #power>
<letf #rt = #power*100/#maxpower>
;
// 九州電力
<kyushu #proxy #maxpower #power #rt>
::sys <httpget #h #b "http://www.kyuden.co.jp/power_usages/pc.html" #pro
xy>
<checkheader #h>
::sys <htmltags #t #b 'div id="section1"' '/div'>
::sys <htmltags #t2 #t 'td align="center"' '/td'>
::sys <cadar #t3 #t2>
::sys <erasealltags #t4 #t3>
::sys <erasestr #t5 #t4 '万kW'>
::sys <erasestr #t6 #t5 ','>
::sys <split #t7 #t6 "/">
::sys <cadr #maxpower #t7>
::sys <car #power #t7>
<letf #rt = #power*100/#maxpower>
;
<disp>
::sys <clear>
<init>
::sys <date #d>
<print "Loading data ... " #d>
<proxy #proxy>
<print "東北電力">
[<tohoku #proxy #tohoku_maxpower #tohoku_power #tohoku_rt>]
<print "東京電力">
[<tokyo #proxy #tokyo_maxpower #tokyo_power #tokyo_rt>]
<print "中部電力">
[<chubu #proxy #chubu_maxpower #chubu_power #chubu_rt>]
<print "関西電力">
[<kansai #proxy #kansai_maxpower #kansai_power #kansai_rt>]
<print "九州電力">
[<kyushu #proxy #kyushu_maxpower #kyushu_power #kyushu_rt>]
<for (#i 20)
::sys <sleep 5>
// ::sys <clear>
<print "更新 " #d>
<print "東北電力">
(::sys <isInteger #tohoku_maxpower>
<print "ピーク時供給力 : " #tohoku_maxpower 万kW>
<print " 使用量 : " #tohoku_power 万kW>
<print " 使用率 : " #tohoku_rt "%">
|
<print "データなし">
)
<print>
::sys <sleep 5>
<print "東京電力">
(::sys <isInteger #tokyo_maxpower>
<print "ピーク時供給力 : " #tokyo_maxpower 万kW>
<print " 使用量 : " #tokyo_power 万kW>
<print " 使用率 : " #tokyo_rt "%">
|
<print "データなし">
)
<print>
::sys <sleep 5>
<print "中部電力">
(::sys <isInteger #chubu_maxpower>
<print "ピーク時供給力 : " #chubu_maxpower 万kW>
<print " 使用量 : " #chubu_power 万kW>
<print " 使用率 : " #chubu_rt "%">
|
<print "データなし">
)
<print>
::sys <sleep 5>
<print "関西電力">
(::sys <isInteger #kansai_maxpower>
<print "ピーク時供給力 : " #kansai_maxpower 万kW>
<print " 使用量 : " #kansai_power 万kW>
<print " 使用率 : " #kansai_rt "%">
|
<print "データなし">
)
<print>
::sys <sleep 5>
<print "九州電力">
(::sys <isInteger #kyushu_maxpower>
<print "ピーク時供給力 : " #kyushu_maxpower 万kW>
<print " 使用量 : " #kyushu_power 万kW>
<print " 使用率 : " #kyushu_rt "%">
|
<print "データなし">
)
<print>
::sys <sleep 5>
>
;
? {<disp>};
--
--
[PageInfo]
LastUpdate: 2011-09-07 02:22:43, ModifiedBy: hniwa
[License]
Creative Commons 2.1 Attribution
[Permissions]
view:all, edit:login users, delete/config:login users