2008年12月31日水曜日

VIsual C++2005 入門編

HSP製インタプリタの処理が遅かったら
Visual C++ Express Edition製にしよっかなー
ということで
大きめの書店で入門書を買って読んでます

でも開発言語の解説より
言語仕様の解説が多くてものたりないです
どうやってマスターしようか?→開発環境の使い方
なんかC++の知識が前提みたいで
何年も前に買った独習C++も読み直す必要がありそうです
でも内容が硬くてなかなか読み進められないですね

これ読んでたらHSP製インタプリタの作成意欲が減ってきた気もしますが
気にしない(苦笑)

2008年12月29日月曜日

参加賞

HSPコンテスト2008の参加賞が今日届きました
品物はレンズクリーナー携帯ストラップです
携帯の画面汚れ気味のTACKとしては嬉しいです

そういや今使ってる携帯3年くらいたつよ
一箇所チラリと基盤が見えてますよ
親父の使ってた携帯に機種替えようと思いつつ
めんどくさいし
着うたフルはいんないし
変えるとしたら新しい携帯かな。なんて思っています
携帯替えるのは簡単なんだろうけど
メモとか
ムービーに入ってる鼻歌だとか
そういうのを入力するのがめんどくいんだよね

#ちなみに僕はAUユーザーです

"FILE_array_plus.hsp"モジュールと"FILE_str_plus.hsp"モジュールの合体

サイト更新しました

更新したページはコチラ

"FILE_array_plus.hsp"モジュールと"FILE_str_plus.hsp"モジュールの合体


モジュールとモジュールの結合ということで
スクリプトが加算されるかな?と思いきや
いらない命令も多くすっきりしました

コチラのページも初期値を代入できるように少し変更

文字列の自動確保機能を使用して複数の文字列を格納するモジュール



次に作りたいモジュールはシナリオからの文字列の取り出しです
本見ながら紙にオートマンまで書いて
格納する配列のサイズはどうする?とか思ってたら
こんなモジュールを作成してしまいました

2008年12月27日土曜日

文字列の自動確保機能を使用して複数の文字列を格納するモジュール

サイト更新しました
次の課題は使用しているモジュールへのアクセスが遅いかもしれないので
モジュール二つを合体させることです
分割したモジュールを合体させるなんて
オブジェクト指向的にどうか。とも思いますが
簡単そうなのでやってみます

更新箇所はコチラ

文字列の自動確保機能を使用して複数の文字列を格納するモジュール

2008年12月24日水曜日

文字列の自動確保機能を使用して数値配列を自動確保するモジュール

何日か前に作成してあとはどこかで公開すべき
そんな状態でしたがようやく更新完了
上手く表示されないのでモジュールはtxt形式になりましたが...

wikiに投稿しようか?と少し思いましたが
たまには投稿したくもありますが
あまりよそさまに頼るのもあれなんで
HSP製インタプリタの作成で作成したものは
自分のサイトで公開していこうかな?と思い始めているので

LINKはこちらから

文字列の自動確保機能を使用して数値配列を自動確保するモジュール

2008年12月23日火曜日

本日のerror:2008/12/23

サイトを更新しようとして、スクリプト書いてたんですよ
もう一個似たような命令を欲しいな
で、コピペ。その後error
あれ。全然上手く動かねー!(怒)

正解は文字列にpokeしてたのが2文字目からで
ってことは1文字目の値は0ってわけで
1文字目が0だと2文字めにどんな値を入力しても
空文字列と判定されるということです

それから、MODULE作TACKのページ更新しました

0を加えて指定の桁に揃えた文字列を返すモジュール

2008年12月18日木曜日

HSP開発wikiへの投稿200812/18

久しぶりにHSP開発wikiへ投稿しました
Module→行頭と行末のタブとスペースを取り除くモジュール
です
HSP製インタプリタ作成の一環として
このモジュールを作成しました
論理を踏むように
一つ一つの動作を積み上げて作成したら
案外簡単でした

HSP開発wikiではしょっちゅう中傷されて
あんまり得意ではないですが
今度は大丈夫だといいな

少し作りたりない部分もありますが
続きは明日ってことで...

2008年12月17日水曜日

区切り文字で区切るモジュール

・FILE名:mdl_calc_one_dat.hsp

#module one_data NO,型,tmp_型,中身の数,中身,warn,n_warn

#modinit int number
NO=number
型=null
sdim tmp_中身,2000
sdim tmp_型,256
tmp_型=""
中身の数=0
sdim 中身,2000,32
repeat 32
中身.cnt=""
loop
n_warn=0
sdim warn,1000

sdim of_sep_A,1000
sdim of_sep_B,1000
return
#modfunc add_warn str w
if n_warn=0{ warn=w : n_warn++ }
else{ warn+="\n"+w : n_warn++ }
return
#defcfunc sep2 var to_sep,var from_sep_01,var from_sep_02
l2sep=strlen(to_sep)
ans_of_sep=instr(to_sep,0,"||")
if ans_of_sep==-1{
from_sep_01=to_sep
return 1
}else{
from_sep_01=strmid(to_sep,0,ans_of_sep)
l=l2sep-ans_of_sep-2
from_sep_02=strmid(to_sep,-1,l)
return 2
}
return -1
#modfunc search_sep_error
if tmp_型==""{add_warn thismod,"区切り文字の前に何もありません" }
ii=中身の数-1
if 中身の数>0{
if 中身.ii==""{add_warn thismod,"区切り文字の後に何もありません" }
}
n=中身の数
if n>=2{
repeat (n-1)
if 中身.cnt=""{add_warn thismod,"区切り文字の間に何もありません" }
loop
}
return
#modfunc set_one_data var data
ans=sep2(data,of_sep_A,of_sep_B)
tmp_型=of_sep_A : 中身の数=0
n_cnt=0
while ans==2
tmp_中身=of_sep_B
ans=sep2(tmp_中身,of_sep_A,of_sep_B)
中身.n_cnt=of_sep_A
中身の数++
n_cnt++
wend
search_sep_error thismod
return

#modfunc dump
logmes "NO = "+str(NO)
logmes "型 = "+tmp_型
logmes "中身の数 = "+中身の数
repeat 中身の数
logmes "中身"+cnt+" = "+中身.cnt
loop
if warn!=""{
logmes "警告:"+warn }
return
#global


テストコード その1

#include "mdl_calc_one_dat.hsp"
sdim sn,4000
sdim tmp_sn,256
sdim one_sc,256

sdim to_test,2000,32
to_test.0="this"
to_test.1="this||a"
to_test.2="this||a||b"
to_test.3="this||a||b||c"
to_test.4="this||a||b||c||d"

newmod one_dat_01,one_data,1
set_one_data one_dat_01,to_test.0
dump one_dat_01

newmod one_dat_02,one_data,2
set_one_data one_dat_02,to_test.1
dump one_dat_02

newmod one_dat_03,one_data,3
set_one_data one_dat_03,to_test.2
dump one_dat_03

newmod one_dat_04,one_data,4
set_one_data one_dat_04,to_test.3
dump one_dat_04

newmod one_dat_05,one_data,5
set_one_data one_dat_05,to_test.4
dump one_dat_05


・テストコード その2

#include "mdl_calc_one_dat.hsp"
sdim sn,4000
sdim tmp_sn,256
sdim one_sc,256

sdim to_test,2000,32
to_test.0="this"
to_test.1="this||"
to_test.2="||a||"
to_test.3="a||b||||||||c"
to_test.4="this||a||b||c||d||e||f||||g"

newmod one_dat_01,one_data,1
set_one_data one_dat_01,to_test.0
dump one_dat_01

newmod one_dat_02,one_data,2
set_one_data one_dat_02,to_test.1
dump one_dat_02

newmod one_dat_03,one_data,3
set_one_data one_dat_03,to_test.2
dump one_dat_03

newmod one_dat_04,one_data,4
set_one_data one_dat_04,to_test.3
dump one_dat_04

newmod one_dat_05,one_data,5
set_one_data one_dat_05,to_test.4
dump one_dat_05

HSP製インタプリタ2008/12/17

便利なインタプリタ作成は後回しにして
中間言語だけのインタプリタを作成中です
作成中というか
アイデアだけ色々と考えてます
コツコツとスクリプト書きするほうが
完成への一番の近道なのでしょうが
スクリプト書きが激遅のTACKは
全然スクリプト書きがはかどっていません
順調に進むといいなぁ→スクリプト書き

というわけで最近作成したモジュールです
作成しているのは中間言語なので
tokenで区切るのではなく
区切り文字で区切る予定です
というわけで、”||”の2文字で
区切るモジュールを書いてみました
区切り文字で区切るといっても
"と"で区切った中の区切り文字は無視するのが
次のSTEPです

2008年12月7日日曜日

HSPwikiへの投稿2008/12/7 その後

wikiへの投稿、ガッツリ削除されました
なんか、怒りが収まらない

消されてすぐ書き込みしなおすのも癪なので
同じ内容を自分のサイトに書きました
もうこのネタ、wikiに書かなくていいよ...

でも消したヤツ一体どういうつもりなんだろう?
このサイトは俺が管理する!
俺の気に入らない記事は削除だ!とか
勘違いしているんだろうか?
こういう奴がいるから
HSPwikiの管理人のiwataさんにキレられるんだ