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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0625
ガビーンユーロレート取得4解決


ガビーン

リンク

2006/6/25(Sun) 13:29:39|NO.1205

ユーロのレートを取得するにはどうすればいいんですか
http://hsp.tv/play/pforum.php?mode=all&num=1033
ここにあったなたでさんのスクプリトを
見たんですが
仕組みがよくわからなかったので
そのへんも解説してくれるとうれしいです



この記事に返信する


kou

リンク

2006/6/25(Sun) 16:48:11|NO.1206

スクリプトを読ませていただきました。
> 仕組みがよくわからなかったので
hspsockを使い、Yahoo!ファイナンスの外国為替レート表を変数bufに入れ
文字列操作関数でbufから必要な数値を抜き出している分けです。
なたでさんのスクリプトではドルだけ取得なので、それをユーロまで取得してあげれば
良いと思います。


#include "hspsock.as" size=12000 : sdim buf,size : ps="" st="</td><td>":en="</td>" tuuka="アメリカ ドル","オーストラリア ドル","イギリス ポンド","カナダ ドル","スイス フラン","欧州 ユーロ" sockopen 0,"quote.yahoo.co.jp",80:if stat{goto *er1} sockput "GET /m3?u HTTP/1.0\nHost:???\nUser-Agent:???\n\n":if stat{goto *er1} mes "情報をダウンロードします。" repeat size/64-1:await 0 sockget ps,64:if stat{break} b=peek(ps,0):if b=0{er=1:break}else{buf+=ps} loop mes "ダウンロード完了。" if er{ pos_st = instr(buf,0,"1"+st) : pos_st += 10 repeat 6 pos_en=instr(buf,pos_st,en) if (pos_st=-1)|(pos_en=-1){ goto *er3 } rate=double(strmid(buf,pos_st,pos_en)) mes tuuka(cnt)+"は"+str(rate)+"円です。" pos_st += pos_en+9 loop } else { mes "接続ミス" : goto *er2 } sockclose:stop *er1:mes "接続失敗しました。":sockclose:stop *er2:mes "404とか":sockclose:stop *er3:mes "取得失敗しました。":sockclose:stop

↓ここのソースを見れば分かりやすいかもしれませんね。
http://quote.yahoo.co.jp/m3?u



ガビーン

リンク

2006/6/27(Tue) 16:26:50|NO.1211

返事が遅れてすいません
だいたいわかったような気がするのですが
ドルの変数とユーロの変数をbufから抜き出そうとすると
ドルなどの値が意味不明になってしまいます
正しい抜き出し方法もおしえていただけるとありがたいです



kou

リンク

2006/6/28(Wed) 21:53:01|NO.1224

> 正しい抜き出し方法もおしえていただけるとありがたいです
正しい抜き出し方と言うのは無いので、

instr 文字列の検索をする
strmid 文字列の一部を取り出す
getstr バッファから文字列読み出し

命令を使い抜き出すと良いでしょう。たとえば以下のようなhtmlのテーブルでしたら

buf = {" <table> <tr> <td>ドル100</td> <td>ユーロ200</td> </tr> </table> "} mes "変数bufの中身は\n"+buf i = instr(buf, 0, "<td>ドル") //文字列の検索をする i += 8 //インデックスを文字列分進めておく getstr doru, buf, i,'<' //変数doruへインデックスから'<'まで読み込む i = instr(buf, 0, "<td>ユーロ") //ユーロも同じように i += 10 getstr yuro, buf, i,'<' mes "ドルは"+doru mes "ユーロは"+yuro

こんな感じにすると抜き出せますよね。



ガビーン

リンク

2006/7/1(Sat) 13:10:22|NO.1238

自分でも理解ができるようになりました
ありがとうございました



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