Hot Soup Processor スクリプト言語システム
HSP . 日時・時間


PSH x HSP 講座 オブジェクト COM MCI 用語 ソフト HTMLタグ リンク

フリーウェアのスクリプト言語システムHSPを利用したプログラミング講座です。ONION softさんが開発したものです。HSPは無料ソフトですよー。

wait・await

 処理を一時的に停止する命令。「stop」命令の時間制限あり版と考えるといいです。パラメータに待ち時間を 指定する。2つの違いは精度。「wait」命令はパラメータ値×10ミリ秒。1を指定した場合は10ミリ秒(0.01秒)の 待ち時間となります。「await」命令はパラメータ×1ミリ秒。1を指定した場合は1ミリ秒(0.001秒)の待ち時間 となります。「await」の命令の方が細かい時間待ちができる反面、CPUへの負担がより大きいとのこと。

gettime

日にちや時間を取得する関数です。現在の日にちと時刻を表示します。

day=""+gettime(0)+"/"+gettime(1)+"/"+gettime(3)+""   ;年月日を取得
time=""+gettime(4)+"/"+gettime(5)+"/"+gettime(6)+"" ;時分秒を取得

mes "日にち ["+day+"]
mes "時間 ["+time+"]

曜日文字列を表示します。上にあるstrmidを使って曜日の2バイト分を切り出しします。

yobi="日月火水木金土"  ;曜日の文字列
yobi_value=gettime(2)  ;曜日番号(0〜6)の取得
yobi_cut=strmid(yobi,yobi_value*2,2)  ;2バイト(1文字)分の文字を切り出す

mes "今日は "+yobi_cut+" 曜日です"

下のサンプル例は現在の日時を整形(YYYY/MM/DD)してモジュール関数にしてあります。月と日の数字が1桁ならば0を付け足すモードがあり。

#module

#defcfunc getdate int v1
  if v1 {
      return ""+gettime(0)+"/"+strf("%02d",gettime(1))+"/"+strf("%02d",gettime(2))+""
  } else {
      return ""+gettime(0)+"/"+gettime(1)+"/"+gettime(2)+""
  }

#global

;利用例
mes "今日は"
  mes getdate(0)
  mes getdate(1)
mes "です"

現在の時刻を表示します。まずはよくある失敗事例で文字が重なってしまいます。

; 問題ありのコード1

repeat
  pos 100,100
  mes ""+gettime(4)+":"+gettime(5)+":"+gettime(6)+""

  wait 100
loop

ちゃんと表示した文字をクリアする処理(color・boxf)が必要です。が、このサンプル例もいちおう問題があり、激しいちらつき(点滅)現象が起こる。
(注意)ここではちらつきを激しくするため、わざと「wait」命令のパラメータに少さい数値を指定しています。「wait」命令を使った時刻の表示は100、つまり1秒待ちで問題ない。

; 問題ありのコード2

repeat
  color 255,255,255 ; 画面のクリア(白色)
  boxf 100,100

  color 255,0,0  ; 時刻表示の色(赤色)

  pos 100,100
  mes "現在時刻は "+gettime(4)+":"+gettime(5)+":"+gettime(6)+" です"

  wait 1  ; ちらつきがはっきりと分かるようにわざと持ち時間を減らしています
loop

上はクリア処理と時刻表示処理が一気に目に飛び込んでくるためです。ちらつき現象をなくすには表示を一時停止させる処理としてredrawを使うとよい。

repeat
  color 255,255,255 ; 画面のクリア(白色)
  boxf 100,100

  color 255,0,0 ; 時刻表示の色(赤色)

  pos 100,100
  mes "現在時刻は "+gettime(4)+":"+gettime(5)+":"+gettime(6)+" です"

  redraw 1  ; 表示の反映を再開

  wait 1

  redraw 0 ; 表示の反映を停止
loop

HSP入門MENU

HSP入門1 : 文字の表示、タイトルバー
HSP入門2 : ループ、ラベル
HSP入門3 : 色、ポジション
HSP入門4 : 文字処理
HSP入門5 : 日時・時間
HSP入門6 : フォント、画像
HSP入門7 : ウィンドウ、ダイアログ

Q&A (準備中)

0.HSPを利用していくうえでポイントは?

1. HSPでプログラム言語を作成できる?
 ちょっと難しいです。HSPはインタプリタというスタイルの言語なので。

2. ウィンドウにメニューを作成するには?
 Windows APIというのを使うと作成できるみたいですが、分からない人ようにメニューを表示するHSPモジュールが付いてます。「mod_menu.as」というファイルです。

3.ダイアログボックスで「はい」「いいえ」以外の文字を表示するには?
 できません。Windows APIというのを使うとたがう種類のダイアログは表示できますが、文字はいじれません。

4.ホームページをブラウザで開きたい。
 execが使えます。URアドレスを指定して起動タイプは16です。デフォルト設定になってるインターネットブラウザで立ち上がります。

〜〜〜〜〜

HSP

PSH x HSP | HSP講座 | 実行ファイルの作成方法 | オブジェクトの用意 | 音楽・動画の再生 | HSPの用語