四歩目 ロード
まぁ 3歩目がセーブということで さっしのとうり 4歩目はロードです 前回のつ・づ・き
つまりファイルからデータを引き出します
〜ロード〜
問題 セーブがbsaveでした ではロードはなんざんしょ
・・・答えはbloadです
とにかくやってみよう
あっ ちなみにこのプログラムも前回と同様 ちゃんと保存してから実行してね
a="テスト成功" nagasa=strlen(a) bsave "test.txt",a,nagasa bload "test.txt",b print b stop |
前回のセーブのプログラムを上に書いてあります んで
bload "test.txt",b で もう予想はつくでしょうが b という変数に
test.txtの内容を読み出します
そして print b で 読み出した変数の内容を表示して stop でとまります
どうです? 実行したら 画面にテスト成功と表示され・・・・てませんねぇ
意味不明な数字が並んでいます なぜでしょうか?
それは ファイルの内容をロードするときに内容を保存した変数bに秘密があります
実は b は数字用の変数になっていたのです
〜変数の種類〜
HSPの変数は大きく分けて2種類あります
それは数値型と文字列型です (数字と文字については13歩目 数字って文字か?で)
数値型は数字しか扱わない(入れられない)変数です
逆に文字列型は文字しか扱わない変数です
でHSPでは変数をいきなり使うと 数値型として初期化されるらしいのです
だから 数値型のbにファイルをロードしたら文字が数字に変えられて保存されてしまったのです
じゃあどうすれば いいかというと bを文字列型にしてからファイルをロードすればいいのです
a="テスト成功" nagasa=strlen(a) bsave "test.txt",a,nagasa str b bload "test.txt",b print b stop |
実行すると ちゃんと テスト成功 と出てますね
もうお分かりでしょう str
b でbを文字列型にしています
str は変数を文字列型にすることができるのです
ちなみに str b としなくても bを文字列型にする方法があります
それは b="" です こうするとbは文字列型になります
〜ちょっと遊ぼう〜
人生がんばってばっかじゃだめです どんなに好きなことでも 生きがいなことでも
いやでも 休みを取ったほうがいいです
オヤブンの格言らしきもの(意味がわかんないね)
ということで前座はこのぐらいにして bloadでちょっと遊ぼうか
a="テスト成功" nagasa=strlen(a) bsave "test.txt",a,nagasa str b bload "test.txt",b,2 print b stop |
どう? 実行すると テ って出てるでしょ これは
bload "test.txt",b,2 の2に秘密があります
この2の部分には ロードするファイルの大きさを指定するものです
だからこの部分の容量だけファイルからデータを持ってきて 変数に入れるのです
ちなみになぜ2なのに 1文字しか出てないかというと データが半角なら1
全角(日本語とか)は2で1文字だからなんだ
もういっちょいってみそ
a="テスト成功" nagasa=strlen(a) bsave "test.txt",a,nagasa str b bload "test.txt",b,,2 print b stop |
どう? スト成功 って出てるでしょ?
今度は bload "test.txt",b,,2 とかいた 2に秘密があります
bloadのここには ファイルの先頭よりどれだけか飛ばして それから読み始めるといった数字を入れます
つまり ここには2と入れてあって ファイルの内容は全角だから 1文字だけ先頭から飛んで
ファイルを読み出したわけだ
まみむめまとめ bload・・・ファイルの内容を変数に入れる またロードする量や ロードし始める場所も指定できる bload "test.txt",b,100,100 str・・・変数を文字列型にする str b |