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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0111
qwertynote~命令について5解決


qwerty

リンク

2022/1/11(Tue) 22:54:42|NO.94971

質問です。

notesel notebuf notedel 0 noteadd "",0 notedel 1 noteadd "",1 notedel 2 noteadd "",2 wx1=str(ginfo(4)) wy1=str(ginfo(5)) noteadd wx1,0 noteadd wy1,1 noteadd notepas,2 notesave "setting.ini" stop
上記のようなスプリクトを作り変数などを保存しようと思ったのですが、なぜかnotesave命令が不安定で
「setting.ini」が生成されなかったり、生成されても中身がない(変数が保存されていない)状態です。
最後のnoteadd命令では日本語が入っています。他は数字のみです。
何が原因なのか分かる方がいらっしゃったらお教えください。
よろしくお願いします。
環境:Windows10
HSP3.6



この記事に返信する


沢渡

リンク

2022/1/12(Wed) 02:26:39|NO.94974

冒頭に「notepas="あいうえお"」と追加して実行してみたところ問題なく保存できましたが、
他の部分に問題があるのではないでしょうか?
たとえば、カレントディレクトリが変更されていて、想定している場所とは違う場所に
保存されてしまっているとか。(dialog命令でユーザーが他のフォルダを選んだ場合も
カレントディレクトリは変更される)



zrs90(5さい)

リンク

2022/1/12(Wed) 03:28:42|NO.94975

まずは、プログラミングマニュアル 3.14
メモリノートパッド命令 を読んでみて下さい。

ついでに、書かれているサンプルも
実行して、動きを見ると良いです。

サンプルフォルダの basic にも、note系命令の入った
サンプルがあります。

ーーーーーーーーーーーーーーーーーーーーー

※ソースが全部書いてある事を前提に書いています。

◎の部分は、私の経験上の物なので
要らない場合は、飛ばしてかまいません。


◎変数にnote〜という名前を使ってますが
出来れば、やめた方が良いです。
今回、note系の命令等に、その名前が使われてなかったので
問題はないのですが、命令等と重なると、厄介です。
(※当然、エラーになります。)


◎先頭に、sdim notebuf , 256 を追加。
; 文字列型配列変数を作成。
; 入れてない場合もあるが、変数に入る予定の文字数(※半角換算)より
;多少多めの数を指定しておく、習慣を付けて置いた方が良いです。
;簡易テキストエディタ等を作る場合、必要になります。


●存在しない行を、notedel 命令で削除している(2、4、6行目)
;おそらく、コレが原因では?


●notepas という 変数、何も入ってない変数を
セーブファイル(予定)の、3行目に追加している...???...コレは意味が分かりません。


◎notesave の前の行に、chdir "セーブしたいディレクトリ(フォルダ)名"
...をフルバス指定で、記述しておくと、セーブファイルが
行方不明にならずに済みます。

ただし、プログラムを他人に渡す場合は、環境に依存するので注意。
(※そのフォルダが、無い場合も考えないと、当然、エラーになります)


...こんな所でしょうか?

半分眠りながら書いてるので、間違ってたらごめんなさい。



zrs90(5さい)

リンク

2022/1/12(Wed) 05:10:22|NO.94976

沢渡さんが、指摘した通りであれば
私の投稿は、ほぼ意味がありません。

...index と 行数の数え方を、間違えたか
未初期化の変数に対して、存在しない行の削除を
行ったので、誤動作したのかな?...と考えましたが
...よく考えれば、変数に内容が入ってない物が
あったりしていたので、沢渡さんの指摘通りと思います。



ねんねこ5787

リンク

2022/1/12(Wed) 08:47:05|NO.94977




qwerty

リンク

2022/1/12(Wed) 17:44:24|NO.94982

>沢渡さん
なるほどdialog命令でもカレントディレクトリは変更されるのですね...
確かに直前でdialog命令を使っていました。

>zrs90(5さい)さん
すいません書き忘れました...。notepasという変数にはdialog命令で取得できるファイルパスを入れてました。
次回起動時に自動的に読み込みできるように(できるときのみ)しようと思っていました。
あと変数にnoteなどのを入れないよう気を付けます。ご指摘ありがとうございます。

>ねんねこ5787さん
URLありがとうございます。いろいろ調べてやってみてもできなかった時の最終手段として使ってみます。

みなさんご返信ありがとうございます。
ここは解決とさせていただきます。
本当にありがとうございました。



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