« 【よみもの】もーりおのつぶやき 第10回 | メイン | 【講座】HSP3ワンポイントテクニック 第22回 »
2007年06月12日
HSPTV!メルマガ 第41号
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HSPTV!メルマガ 第41号 N0.0041 2007/06/12 発行
編集長:うすあじ ( hsptv@hspcenter.com )
発行:HSPTV!(ONION software)
WEBサイト:http://hsp.tv/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録解除などはこちら http://hsp.tv/play/service.html
■はじめに
こんにちは、うすあじです。
今週は”もーりおのつぶやき”はオヤスミ。
オヤスミの”もーりお”さんに応援のメールを出そう!
hsptv@hspcenter.com
まで。
さて、HSPのニュースです。
現在、HSP3.1β10公開中。
http://www.onionsoft.net/hsp/hsp2beta.html
そして、そろそろHSP3.1のRC版も準備中とのウワサが!
何時出るのかな??
それでは、技術よりのメルマガをどうぞ。
(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■今回のインデックス
【講座】HSP3ワンポイントテクニック 第22回(おにたま)
【講座】HSPよく使うフレーズ 第32回(うすあじ)
【募集】メルマガ投稿募集中
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSP3ワンポイントテクニック 第22回
このコーナーでは、HSP3の変わった使用例や、気付きにくい機能
などを紹介していきたいと思います。
以前にも、Unicodeについての話題を出したことがありますが、
今回はさらに深く文字コードについて取り上げてみましょう。
と、言ってもあれこれ難しい呼び名や、歴史の話をしても眠く
なってしまうので、いきなり役立つスクリプトの実例をもとに
説明をしてみたいと思います。
文字コードの問題で一番困るのは、読めない文字を持った
データがやってくることです。言ってみれば、自分が読みたい
本が読めない国の言葉で書いてある…というような状態です。
これは、インターネット上のテキストデータを取得した時によく
起こります。以下のスクリプトは、YAHOO!のトップページに
表示されている内容(html)をファイルに保存するものです。
#include "hspinet.as"
netinit
if stat : dialog "ネット接続できません。" : end
neturl "http://www.yahoo.co.jp/"
netload "index.html"
ここで取得されたデータ(index.html)を、メモ帳などで開くと
日本語がよくわからない文字になっています。
各種文字コードに対応したエディタ(秀丸など)であれば、
正しく表示されますが、HSPも含めて通常は1つの文字コード
(シフトJIS)しか正しく表示されません。
外国語に色々な種類があるように、文字コードにも色々な
種類があり、インターネット上ではそれらが混在して使われて
いるのが現状です。
HSP3では、シフトJISがメインで、補助的にUnicode(UTF-16)
というコードを扱うことができますが、他にもEUCやJIS、
UTF-8など様々な種類が存在しています。先にサンプルを作成
したYAHOO!のページには、EUCが使われています。
それぞれの文字コードについて、細かい部分は省略しますが、
とにかく読める文字にしたくなる場面は少なくないと思います。
そこで、今回は文字コードの変換を行なうスクリプトも紹介
したいと思います。これを使えば、YAHOO!のページに含まれて
いる日本語も、HSPで正しく認識させることができるように
なります。
今回は、この変換のために「nkf32.dll」というDLLを使用する
ことにします。これは、文字コード変換を行なうライブラリ
として古くから多く使われているもので、使い方や、運用の
方法も手軽です。色々なバージョンが存在しますが、以下の
サイトにあるものを使用して作成しました。
http://www.vector.co.jp/authors/VA002133/
通常のプラグインと同様に、ランタイム(hsp3.exe)がある
フォルダに「nkf32.dll」をコピーして使用してください。
#uselib "nkf32.dll"
#func global SetNkfOption "SetNkfOption" sptr
#func global NkfConvert "NkfConvert" var,sptr
fname="index.html"
exist fname
sz=strsize
if sz<0 : dialog "ファイルがありません。" : end
notesel org
noteload fname
sdim cnv,sz*4 ; 変換後のバッファを十分に取る
opt="s" ; SHIFT-JISに変換する
SetNkfOption opt
NkfConvert cnv,org
notesel cnv
notesave "index_s.html"
mes "変換しました。"
このスクリプトは、EUCで書かれている「index.html」という
ファイルをシフトJIS(HSPで使用している形式)に変換して、
「index_s.html」というファイル名で保存します。
「nkf32.dll」自体は、SetNkfOptionという命令で変換の設定
(オプション)を指定した後、NkfConvert命令により変換を
実行するだけで処理は完了します。NkfConvert命令では、
変換先と変換元のバッファを指定する必要がありますが、
バッファの自動拡張は行なわないので、余裕のあるバッファを
確保する必要があるところだけ注意してください。
このDLLにより、様々な文字コードの相互変換を行なうことが
可能です。この例では、ネット上にあるEUCの文字コードを
シフトJISに変換していますが、逆にシフトJISをEUCに変換して
ネット上にftp経由でアップロードを行なうなどの応用も考え
られます。
(おにたま)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSPよく使うフレーズ 第32回 スコア表示
掲示板に質問があったから、作ってみたよ。
今回はグラフィックでスコア表示をする方法のご紹介。
メルマガのサンプルではグラフィックを用意するのが難しいので、
最初の数行でID1に作成してみた。
1文字20かける20ドットで数字のグラフィックが作成できれば、
それをpicloadで読み込んで使うといいよ。
構造は単純。数字を文字に変換して、1文字ずつ取り出して、
それをまた数字にしている。
その数字を使ってgcopyで表示したい数字のグラフィックをコピー。
コツとしては、"0000"を文字列に足すところかな?
自分で作ったグラフィックで、スコアが表示されるとカッコイイよね。
//font make
screen 1,200,200
color 0,0,0:boxf
repeat 10
pos cnt*20+7,2:color 100,100,100:mes cnt
pos cnt*20+5,0:color 255,255,255:mes cnt
wait 1
loop
//main
screen 0,640,480
color 0,0,0:boxf
//score up
repeat 2000
scr=cnt
gosub *score_put
await 1
loop
stop
//
*score_put
redraw 0
scr1="0000"+str(scr)
scrtxt=strmid (scr1,-1,4)
title ""+ scrtxt
repeat 4
num=int(strmid (scrtxt,cnt,1))
pos 100+cnt*20,100
gcopy 1,num*20,0,20,20
await 1
loop
redraw 1
return
//[gscore.hsp/hsp3]
(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【募集】メルマガ投稿募集中
”HSPTV!メルマガ”への投稿をお待ちします。
募集するコーナーは
(1)「教えて!おにたま!!」
HSPの素朴な疑問をHSPの作者おにたま氏に聞いてみよう!
というコーナー。疑問。知りたいテクニックなどを直接聞く
チャンス。
(2)「もーりおのつぶやき」
つぶやき、短歌や川柳を受け付けてます。
メルマガに関する要望や感想、日常のお便りもお待ちしています。
全ての投稿は”うすあじ”( hsptv@hspcenter.com )まで。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[PR]オススメHSP3の本
・HSP3 リファレンスブック
・公認 HSPファンブック 楽しく始める/極める本
・逆引きHSP3プログラミング事典[応用編]
・逆引きHSP3プログラミング事典[基本編]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■編集後記
今週のメルマガはいかがでしたか?
そろそろマンネリ化してきたかなぁ、という気持ちも若干あります。
牛のいないメルマガは寂しいものですね。
それじゃ、次回まで、お元気で!!
(うすあじ)
■バックナンバーについて
バックナンバーの公開ページはこちら
http://www.hspcenter.com/hsptvm/
■解約方法
登録解除などはこちら
http://hsp.tv/play/service.html
■広告の掲載など
本メールマガジンの広告掲載のご相談は
”うすあじ”( hsptv@hspcenter.com )までお願いします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
編集長:うすあじ ( http://hspcenter.com/ )
記事の投稿、ご意見、ご希望はこちらまで hsptv@hspcenter.com
ONION software Copyright 2007(c) All rights reserved.
メルマガ本文の再配布・商利用、転載は禁止させて頂きます。
HSPのスクリプトサンプルは自由に再利用しても構いません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
投稿者 usuaji : 2007年06月12日 04:04
口臭チェッカー市場