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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1024
サン最終行に\nを入れたくない5解決


サン

リンク

2009/10/24(Sat) 23:54:09|NO.28534

初歩的な質問ですみません…。


a.0="aaa" : a.1="" : a.2="bbb" : a.3="ccc" : a.4=""

上記のような配列文字変数で変数中身が空の時はその変数は無視して
ノートパッド形式で1つにしたいので


repeat 5 if a.cnt="" : continue xx=xx+a.cnt+"\n" await loop 結果 aaa bbb ccc (改行)

上記のにしたのですがこれだと結果にもあるように最後に改行の\nが入ってしまいます。
改行が入らないようにするにはどうすればよいでしょうか?

よろしくお願いします。



この記事に返信する


KA

リンク

2009/10/25(Sun) 00:12:03|NO.28535

>>repeat 5
>>if a.cnt="" : continue
>>xx=xx+a.cnt+"\n"    ←どうしてもここで入ります。
>>await
>>loop

loop を抜けた後に、最後の\nを\00で上書きするか

if cnt=4 { ←4は最後の配列を示す。
xx=xx+a.cnt
break
}
と何処かに追加して、最後だけ\nを追加しないようにします。

汎用的な方法は勉強して下さい。



KA

リンク

2009/10/25(Sun) 00:14:29|NO.28536

×汎用的 → ○具体的



ANTARES

リンク

2009/10/25(Sun) 01:03:36|NO.28537

 最後に以下を実行します。

poke xx,strlen(xx)-2,0



サン

リンク

2009/10/25(Sun) 01:27:05|NO.28538

KAさん

コメントありがとうございます。

if cnt=4 {
xx=xx+a.cnt
break

上記を色々な箇所に追加して試したのですが私の勉強不足で思ったような結果は
得られませんでした…。
1つ疑問に思ったのですがcnt=4の時に上記を実行してもcnt=3の時に既に「ccc\n」に
なっているのでcnt=4の時にxx=xx+a.cntでbreakしても最後の「\n」は
残ってしまうのではないのでしょうか?
勉強不足なため、このような考えになってしまいましたがもし間違っていたら
すみません…。



ANTARESさん

コメントありがとうございます。
見事に解決しました!
本当にありがとうございます。



KA

リンク

2009/10/25(Sun) 06:56:58|NO.28539

>>残ってしまうのではないのでしょうか?

失礼しました、解決していますが下のような感じです。


repeat 5 if a.cnt="" : continue xx=xx+a.cnt if cnt=4 :break xx=xx+"\n" await loop



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