« 【よみもの】もーりおのつぶやき 第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

口臭チェッカー市場