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命令使うことにしました
ありがとうございました



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.93010への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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