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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0610
HHRR004477\nのは行った文字列をstrimdで抽出するとおかしくなる助けて3未解決


HHRR004477

リンク

2021/6/10(Thu) 16:30:59|NO.93010


a=aaaaa\naaaaa do k=strmid(a,0,int) mes k until strmid(a,int,2)=""
でstrmid関数を実行して一文字づつ表示されるようにプログラムを作ったら改行部分からも文字が書かれてしまいます。
これが原因や治療法とかあるのでしょうか



この記事に返信する


ゆうやん

リンク

2021/6/10(Thu) 17:29:18|NO.93011

実行していないのでわかりませんが、

a="aaaaa\naaaaa"
ではないですよね?



GENKI

リンク

2021/6/10(Thu) 21:00:56|NO.93012

できればコピペすれば動いて問題の現象が確認できるスクリプトを貼っていただけると助かります。

a="12345\nabcde" do k=strmid(a,0,i) mes "(" + i + ") " + k i++ until strmid(a,i,2)=""
こんな感じでしょうか。修正箇所は次の通り。
・最初に変数aに代入するのは文字列だと思ったのでダブルクォーテーションで囲みました。
・intは関数なので変数としては使用できません。iに変えました。
・strmidの取り出し始めのインデックスと取り出す文字数が変化しないので無限ループになっていたので、ループごとに値が増えるように変更。

更に追加として、
・何回目のループかわかるように、mesで出力する際に回数も出力するように変更。
・何文字目まで出力されているか分かりやすいように、同じ文字の連続を避けました。


さて、ここから本題です。…というかまずどこに疑問を抱えているのかがわからない状況です。

> 改行部分からも文字が書かれてしまいます。

このサンプルで言うところの(6)(7)のような改行するだけなのが2回続くような出力を変だと感じているということでしょうか?
それとも(8)以降で改行されるはずがない!ということでしょうか?
HHRR004477さんがこうなるはずだと考えている出力結果はどんなものか教えていただけると分かりやすいかなと思います。



HHRR004477

リンク

2021/6/11(Fri) 17:05:59|NO.93013

emes命令使うことにしました
ありがとうございました



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