HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0209
もりまnotesaveでのエラー4解決


もりま

リンク

2007/2/9(Fri) 12:16:59|NO.5535

こんにちは。
notesaveを使ってテキストの保存をしたいのですが,エラーが出てしまいます。
どうしてエラーになってしまうのでしょうか?
以下,問題のスクリプトです。

aaa = "保存テキスト"
notesel aaa

month = gettime(1)
day = gettime(3)

notesave month + "月" + day + "日.txt"
stop

なお,notesaveのところで,monthの前に「""」を追加したところ,エラーはでなくなりました。

notesave "" + month + "月" + day + "日.txt"

これは,「""」を追加したことで,「"" + month + "月" + day + "日.txt"」が
文字型として認識されるようになったためなのでしょうか??
もしそうであれば,「month + "月" + day + "日.txt"」は数値型として認識されているために,
notesaveのファイル名として使えなかったということでしょうか?
(つまりgettimeで得られる値は数値型変数ということ?)

ということは,「month + "月" + day + "日.txt"」のように変数をつなげて使う場合,
文頭にくる変数が数値型(文字型)であれば文全体が数値型(文字型)として扱われる
ということでしょうか?

なんだか派生していろいろ質問してしまってすみません。
よろしくお願いいたします。



この記事に返信する


ふ〜みん

リンク

2007/2/9(Fri) 12:37:07|NO.5536

>これは,「""」を追加したことで,「"" + month + "月" + day + "日.txt"」が
>文字型として認識されるようになったためなのでしょうか??
>もしそうであれば,「month + "月" + day + "日.txt"」は数値型として認識されているために,
>notesaveのファイル名として使えなかったということでしょうか?
>(つまりgettimeで得られる値は数値型変数ということ?)

>ということは,「month + "月" + day + "日.txt"」のように変数をつなげて使う場合,
>文頭にくる変数が数値型(文字型)であれば文全体が数値型(文字型)として扱われる
>ということでしょうか?

それであってますよ。



Irisawa

リンク

2007/2/9(Fri) 12:51:27|NO.5537

> もしそうであれば,「month + "月" + day + "日.txt"」は数値型として認識されている
> ために,notesaveのファイル名として使えなかったということでしょうか?
gettimeは当然数値を返します。

> (つまりgettimeで得られる値は数値型変数ということ?)

変数ではなく、数値(整数)型定数です。

> ということは,「month + "月" + day + "日.txt"」のように変数をつなげて使う場合,
> 文頭にくる変数が数値型(文字型)であれば文全体が数値型(文字型)として扱われる
> ということでしょうか?

HSPは左方の型にできる限り自動キャストしようとします。
(整数/実数型は文字列型に完全に変換できますが文字列型は変換できない文字列が含まれて
いる場合は0になります)

数値(整数/実数)型を文字列型に変換するにはstr関数を使用するかその前に文字列を連結
して文字列型にキャストします。

因みに16進数文字列を数値に変換する場合は頭に"$"を追加します。


hex = "ff" mes int("$" + hex) mes int("$ff") stop



As

リンク

2007/2/9(Fri) 19:14:00|NO.5543

notesave の 変数month は数値型です。

一番初めの変数が数値だと、全体が数値として扱われてしまう場合があるので、

str(month) というふうにくくることをお勧めします。



もりま

リンク

2007/2/11(Sun) 14:02:58|NO.5596

たくさんのお返事,ありがとうございます。
また,代替案もだしていただき,ありがとうございました。
自分ではこう思うけど,実際どうなんだろう?と思っていたので,
確認できてとても助かりました。



ONION software Copyright 1997-2023(c) All rights reserved.