2012年4月13日金曜日

HSPプログラミング入門講座 〜ファイルの読込みと出力保存〜


HSP ≫ HSPプログラミング講座 [9]

○ ファイルの出力保存

プログラムを作成すると現在のちょこっとしたデータを保存しておく必要があるはずでしょう。

まずはnote命令(メモリーノートパッド)というようなHSP命令を使ってメモ帳でも見れるテキスト形式で保存します。必ず最初にnotesel命令を使います。noteadd命令で書き出す文字を指定します。第2パラメータのインデックス番号は0から始まるとのことので注意して下さい。

	notesel data  //	インデックス0(1行目)とインデックス1(2行目)のデータを書き出す 	noteadd "500",0 	noteadd "こんにちは",1  //	ファイルとして出力する 	notesave "hsp-test1.dat" 	mes "保存!" 

作成されたhsp-test1.datをメモ帳なんかでオープンしてみて下さい。ちゃんと下みたいに保存されてますか。


竜巻のニックネームは何ですか
500 こんにちは 

次にバイナリデータとして保存してみます。bsave命令を使います。メモ帳で見ると文字が化けたように見えます。ここでは数値に書き出しにpoke命令(1バイト分)、wpoke命令(2バイト分)、lpoke命令(4バイト分)を使っています。

//	バッファ確保 	sdim data  //	0バイト目に数値データを書き出します 	lpoke data,0,500 //	同じように4バイト目、8バイト目に 	lpoke data,4,100 	lpoke data,8,777  //	ファイルとして出力する 	bsave "hsp-test2.dat",data 	mes "保存!" 

作成されたhsp-test2.datをメモ帳でオープンしてみて下さい。なんだがよく分からないデータが保存されてますか。

○ ファイルの読み込み

2つのファイルを保存できましたので、今度は逆にこのファイルからデータを読み込んでみることにしましょう。「exist」命令でファイルがあるか確認します。そうしないとHSPエラーになるので。


LC分類のスケジュールは何ですか?
//	まずファイルがあるか確認 	exist "hsp-test1.dat" 	if strsize=-1:mes "ファイルがありません!":stop  //	おなじない 	notesel data  //	ファイルを読み込みます 	noteload "hsp-test1.dat"  //	そのまま表示する 	mes data 

ちゃんと表示されましたか。今度は1行目と2行目を別々に表示してみましょう。(ファイルの確認は略)

	notesel data 	noteload "hsp-test1.dat"  //	インデックスを指定して取り出す 	noteget a,1 	mes "2行目:"+a+"" 	noteget b,0 	mes "1行目:"+b+"" 

得られた2行目の数字(500)を足し算(+55)してみましょう。


45ミルで何インチ
	notesel data 	noteload "hsp-test1.dat"  //	インデックスを指定して取り出します 	noteget a,0  //	足し算??? 	b=a+55 	mes b 

あらら・・・、「50055」になりませんか? 見た目には分からないですが取り出した数字はあくまでも文字になってます。つまり、「500」と「55」という文字をくっつけた結果になってしまたったんです。ためしに引き算や掛け算もやってみて下さい。HSPエラーになります。計算ででてくる小数点の話(ここでは左側の変数に優先)と同じです。これを解決するには文字列を数値に変える必要があるわけで、「int関数」使うといいです。

	notesel data 	noteload "hsp-test1.dat"  	noteget a,0  //	足し算!!! 	b=int(a)+55 	mes b 

最後にバイナリのデータとして作成したファイルを読み込みます。逆パターンのpeek関数、wpeek関数、lpeek関数でデータを取り出ていきます。(ファイルの確認省略)


	sdim data  //	ファイルを読み込みます 	bload "hsp-test2.dat",data  	mes ""+lpeek(data,0)+"" 	mes ""+lpeek(data,4)+"" 	mes ""+lpeek(data,8)+"¥n"  //	数値なので、そのまま演算できます 	mes lpeek(data,0)*lpeek(data,4) 

簡単にファイルへの保存と読み込みを説明しましたが、ゲームの得点やレベルみたいなものをセーブしとく場合はこれでは意味があまりありません。データを簡単にいじれしまうからです。サーチエンジンなどで「暗号化 HSP」みたいで調べて下さい(丸投げ...)。

< 前へ | 次へ >



These are our most popular posts:

タイム・コンサルタントの日誌から:サプライチェーン

しかし仮に、このような組織論的な問題がなかったとしても、予測のベースとなるのは何 か、という疑問は残る。過去の ... MESはManufacturing Execution Systemの略で、IT 業界に多い3文字略語の一つである。 ..... パイプライン・・案件リストのことですか?」 ... read more

真夜中の探求者

PATIOはいわゆる会員制掲示板で、当初は「雑談」と「MES(掲示板を使ったオンライン セッション。何の略かは知らない)」がメインでした。 MESは非常に ... 理由はルール ブックを持っていない人にも簡単に説明できる事と、戦闘処理が早いからです。 僕 にとって ... read more

生産計画とスケジューリングの用語集

(1)この製品は生産計画もできますか、それともスケジューラ機能だけですか(2)この 製品はBTOに対応できますか(3)この製品は複数 ... 照会が可能ですか(9)MESから 進捗情報をとりこむ機能がありますか(10)最適化機能のチューニング・ツールはそろっ ていますか? ... 広義のBOMとは何かというと、「マテリアル・マスタを中心とした製品 構成と製造工程にかんする基準情報、ならびに、そこから派生する履歴情報」と定義 できる。 read more

タイム・コンサルタントの日誌から : MES(製造実行システム)とは何か

2009年9月9日 ... さて、MESの機能とは何か。これについては、標準化団体MESAのリストアップした「 11の標準機能」が有名であるが、私はあえて別の説明をしたい。 企業の生産活動 においては常に指示と報告という2つの情報の流れがいきかっている。 read more

0 件のコメント:

コメントを投稿