HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0809
kai天気の取得について5解決


kai

リンク

2014/8/9(Sat) 17:41:16|NO.63639

天気予報を表示するスクリプトを作ってみました。
http://hsptv.sakura.ne.jp/play/pforum.php?mode=pastwch&num=26864で公開されていたスクリプトを簡略化しました。
実行すると
【x日(x) 東京(東京)】 (天気) - xx℃/xx℃ - Yahoo!天気・災害
と表示されると思います。

この文字列から(天気) - xx℃/xx℃の部分を抜き出すことは可能ですか?



この記事に返信する


Flat (元Tetr@pod)

リンク

2014/8/9(Sat) 17:44:14|NO.63640

"】"〜"- Yahoo"
までを抜き出せばいいのでは。
instr+strmidで。



kai

リンク

2014/8/9(Sat) 18:11:57|NO.63641

すいません。最初の質問でスクリプトを出すのを忘れてました・・・

>"】"〜"- Yahoo"までを抜き出せばいいのでは。
をやってみました。


#include "mod_rss.as" url="http://rss.weather.yahoo.co.jp/rss/days/13.xml" rssload desc, link, url, 2 if stat=1 : dialog "取得に失敗しました。" : end foreach desc tnk = desc(cnt) if cnt = 1 : { data = tnk tnk1 = instr(tnk, ,"】") tnk2 = instr(tnk, ,"- Yahoo") mes strmid(tnk,tnk1,tnk2) } loop

ですが、これを実行すると
】 雨時々曇 - 28℃/25℃ - Yahoo!天気・災害
となってしまいます。

どこがおかしいのでしょうか?



Flat (元Tetr@pod)

リンク

2014/8/9(Sat) 18:20:47|NO.63642

tnk1やtnk2を表示してみるとわかりやすいですよ。

まず、末尾の"- Yahoo!天気・災害"が付加されてしまう問題です。
tnk2は先頭から"- Yahoo"までの位置を示していますから、strmid(tnk,0,tnk2)とする場合は
"【x日(x) 東京(東京)】 (天気) - xx℃/xx℃ "
となります。
ですがstrmid(tnk,tnk1,tnk2)とする場合は切り取り開始位置がtnk1となるので
tnk1からtnk2文字分切り取ることになります。ですので、tnk1の分を引く必要があります。

次に、先頭の"】"の問題。
これはtnk1が"】"の先頭の位置を示しているからですので、tnk1が"】"の末尾を示すようにします。
そうするには"】"のバイト数(2)の分だけ足せばよいです。



foto

リンク

2014/8/10(Sun) 08:48:04|NO.63655

こういう方法でもできます。

#include "mod_regexp.as" #include "mod_rss.as" url="http://rss.weather.yahoo.co.jp/rss/days/13.xml" rssload desc, link, url, 100 if stat=1 : dialog "取得に失敗しました。" : end mes submatch(desc(1),"】 (.*) - Yahoo!天気")



kai

リンク

2014/8/10(Sun) 17:40:38|NO.63681

ありがとうございました!!



ONION software Copyright 1997-2021(c) All rights reserved.