投稿
Godot orz_127
先日から、ちょっとはまっていいます。 わかる方、ご教示下さい。 何をしたいかと言うと、スロット0のプログラムを実行してスロット1の内容を編集しようとしています。 画像のようなプログラムを書いてみました。 (続く)
2そうだね
プレイ済み
返信[1]
親投稿
Godot orz_127
スロット1はこの様な状態とします。 (続く)
0そうだね
プレイ済み
返信[2]
親投稿
Godot orz_127
この様に編集されるつもりでプログラムを作りました。 (続く)
0そうだね
プレイ済み
返信[3]
親投稿
Godot orz_127
実際に動かすとこんな状態に orz 何処か使い方が間違っているのでしょうか? 説明には明記されていませんがPRGGET$()が最後の改行コードまで取って来てしまっているようです。 というわけで、CNV$()関数に文字列の最後をPOPしてコードが10ならそのまま、10意外ならPUSHで戻す細工をしてみるとそれっぽくできるのですが…。 (続く)
0そうだね
プレイ済み
返信[4]
親投稿
Godot orz_127
こんな感じとなってしまい、最後に改行が入ってしまいます。 これだとちょっと不便です。 もしかしたら不具合的な事象なのでしょうか? 公式の不具合情報にはなかったとおもいますが、何処かにこれが不具合として上がっているなら、その場所を教えて頂けると幸いです。
0そうだね
プレイ済み
返信[5]
親投稿
MIKI ifconfig
報告は知りませんがなんだかバグっぽいですね。 s$ = left$(s$, len(s$) - 1) で回避できるけど、それでも一行ずつ増えて行くし。
0そうだね
プレイ済み
返信[6]
親投稿
PRGSETでもPRGINSでも最終行に改行のみの行が入ってしまいますね PRGDELをすれば改行のみの最終行を削る事は出来ますが なんかしっくりこないですよね(^^;)
0そうだね
プレイ済み
返信[7]
親投稿
Godot orz_127
そうなんです。 簡易エディタ的なものが作れるのかな?と試したらこの始末で orz 一回行をDELしてINSしてみたりとかもやってみたけど駄目で…。 GETで改行迄取ってくるのが仕様と決まれば最後をけずれば良いのですが、不具合で改善予定なら無駄な努力な気もするし…。 最後に無駄な改行が入るのでDELしてしまえば良さげですが、途中の数行の置換の場合は、最後を単純に消すのではなく、有効行か判断しないとならないし、結構めんどくさい気が orz とりあえず、この前のコメントの最後に改行が残ってしまう残念なバージョンがこれですw
0そうだね
プレイ済み
返信[8]
親投稿
MIKI ifconfig
取ってくるとこを一元管理して、改行があれば削除するようにすれば、将来の変更にも耐えるでしょう。 無駄な改行が末尾だけなら、書くとこも一元化して、書き終えたら末尾の空行を削除するようにすればなんとか回避できるでしょう。その際現在行を保持しないと芳しくないかも。 ただ、末尾だけとも限らないみたいですよね??
0そうだね
プレイ済み
返信[9]
親投稿
Godot orz_127
最後だけみたいです。 この前の修正版のプログラムのFOR文を「FOR I=2 TO 2」とするとこの様になります。 最終行を書き換えたら、無駄な一行が入っている筈なので消す、とすれば最終行を書き換えたかの管理だけで出来そうです。 けど面倒くさいなと。 PRGxxx系のコマンド全然お手軽感がない ^^;
0そうだね
プレイ済み
返信[10]
親投稿
もしかしたらですが、以前テキストファイルをLOADすると最後の1文字が編集出来ないという問題がありました。その対処ではないでしょうか。
0そうだね
プレイ済み
返信[11]
親投稿
Godot orz_127
確か3.2.0でも「S$="ABC"+CHR$(10)」とせず、「S$="ABC"」をそのままテキストで「SAVE "TXT:HOGE",S$」とすると最後の「C」は消せなかった筈。 こちらが直っていないので、別件だと^^;
1そうだね
プレイ済み
返信[12]
親投稿
ish owlis1
役に立たない情報かも ですが。 別スロットから行を取得した時に、末端が改行コードなのは仕様と思い込んでました(^^; 3号発表当初に別スロットから行を取ってきて、簡単な解析をするコードを書きました。 改行コードの問題があり、その時から取り敢えず最終文字は捨てています(ロジックはみき★さんと ほぼ同じ)
0そうだね
プレイ済み
返信[13]
親投稿
マギー M191246
私も仕様と思っていました。 多くのパターンを試したわけではないので 不都合があるかもですけど 例えば PRGSET M$ のところを PRGINS M$,1 PRGEDIT 1,I PRGDEL とするのは、どうでしょうか?
0そうだね
プレイ済み
返信[14]
親投稿
[訂正]気になって調べたら、どちらも、初版からの動作でした。申し訳ありませんでした。
0そうだね
プレイ済み
返信[15]
親投稿
Godot orz_127
やはりPRGGET$()で最後に改行が付くのは仕様なんですかね^^; Cで言うgets()的な仕様を期待したのですがfgets()的仕様なのですね。 とりあえず、スロットもファイル的扱いになっていると考えればよいのだろうか? とりあえずperlやrubyのファイル処理と同様に、今回は、バグで後で修正されても良いようにchomp(最後の1字が改行なら削除する)で実装してみましたが、みき★さんの例の様にchop(最後の1字を削除する)でも良い様な気がしてきました。 最後の無駄な改行の回避はマギーさんのやり方で良さげです。 でもこれPRGSET、PRGINSが「PRINT S$」的な仕様だから駄目な気が「PRINT S$;」的な仕様で最後に改行が入らなければ、丸く収まる気が^^; と言うことは、PRGSET、PRGINSの実装上のハグ?もしくは仕様バグ?
0そうだね
プレイ済み
返信[16]
親投稿
Godot orz_127
>コータさん 確認ありがとうございます。 最初からこの動きですか…。 自分の方では3.2.0の時、3.0.2だったもうひとつの3DSもついアップデートしてしまったので、確認出来ないでいました^^;
0そうだね
プレイ済み
返信[17]
親投稿
Godot orz_127
皆さんの助言によって とりあえず、こんな感じに着地^^
0そうだね
プレイ済み
返信[18]
親投稿
マギー M191246
複数行を一度にコメントアウトする命令 完成したら便利がよさそうです。 というか、以前から、ぼんやりとだけれど あればといいなと思っています。 PRGSETで必ず改行が付く理由。 ちょっと考えてみました。 もし付かないとしたら… ポインタの扱いが、2次元になって ややこしくなるからとか? また完結させてないと、1行の途中まで 上書きできるようになってしまうからとか? 対処法もなくはなさそうですけど やっぱり、よくわかりませんね。
0そうだね
プレイ済み
返信[19]
親投稿
Xavi xavi700
GODOT THE ESSENCE OF DARK COFFEE. XD
0そうだね
未プレイ