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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0705
YOS G-spec入り乱れた改行コードでのsplit3解決


YOS G-spec

リンク

2019/7/5(Fri) 21:11:33|NO.87815

CrLf, Cr, Lfの混じった文字列を分割しようとしていますが、
strrepでLfにまとめた後置き換えても端にゴミが残っているようです。
strtrimで端っこのLfを排除すれば正常に見えるようになるのですがどこか釈然としません。

もし、普通にsplitして改行コードをきれいに置き換えられる方法があれば教えてください。
よろしくお願いします。

#runtime "hsp3cl"
sdim s #define adef "asdff\nastgrw3h\r\nwtegole\rkserlhge3t\nearsgh\nergh\rsagr\r\nerghe\r" a=adef strrep a,"\r\n","\n" strrep a,"\r","\n" split a,"\n",s foreach s mes "<"+s.cnt+">" loop mes "------------------" foreach s mes "<"+strtrim(s.cnt,1,10)+">" loop



この記事に返信する


Velgail

リンク

2019/7/5(Fri) 22:43:07|NO.87816

勘違いのために起きている現象ですね。

\r = CR(13)
\n = CRLF(13, 10)
です。
そのため

strrep a,"\r\n","\n"
strrep a,"\r","\n"

この瞬間にCRLFLFという謎コードが生まれ

split a,"\n",s

をしたところでsの先頭にLFが残ってしまうという流れです。

LFコードはpokeを使って作るようにしてください。



YOS G-spec

リンク

2019/7/5(Fri) 23:51:31|NO.87817

>>Velgallさん
なるほど、色々と腑に落ちました。
HSPには本来"\n"とされているエスケープシーケンスは存在せず、
本来の"\r\n"はHSP上だと"\n"となっているということなんですね。
ありがとうございました。

#runtime "hsp3cl"
sdim lf:poke lf,,10 cr="\r" crlf="\n" a="asdff"+lf+"astgrw3h"+crlf+"wtegole"+cr+"kserlhge3t"+lf+"earsgh"+lf+"ergh"+cr+"sagr"+crlf+"erghe"+cr+"" sdim s strrep a,crlf,lf strrep a,cr,lf split a,lf,s foreach s mes "<"+s.cnt+">" loop



YOS G-spec

リンク

2019/7/5(Fri) 23:52:02|NO.87818

解決をつけ忘れました。



記事削除

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

NO.87815への返信

マスコット

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

名前

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

削除用パスワード

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

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

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