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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0101
ceratornotemax,noteinfo(0)2解決


cerator

リンク

2010/1/1(Fri) 03:59:52|NO.29661

notemaxやnoteinfo(0)でnoteloadしたテキストの行数を取得すると、
最後に改行があってテキストが終了した場合、
行数が正確に表示されません。助けてください。

//-----サンプルスクリプト----- notesel A noteload "tmp.txt" mes A mes "[EOF]" mes noteinfo(0) stop /*-----tmp.txt----- a b xc fd //-----実行結果----- a b xc fd [EOF] 6



この記事に返信する


woodfields

リンク

2010/1/1(Fri) 06:47:41|NO.29662

debugウィンドウで確かめると
不要なのは末尾の%0a,$0d,$1a,$00だと思いますので
それらを$00で書き換えてしまうのはどうでしょう

a="111\n222\n333\n\n\n" mes ""+a notesel a mes "notemax:"+notemax size=strlen(a) repeat size-- chrcode=peek(a,size) if (chrcode == $0a) | (chrcode == $0d) | (chrcode == $1a) | (chrcode == $00) { mes "末尾要削除:"+size+"バイト目 キャラコード:"+strf("$%02x",chrcode) del_bytes++ }else{ chr="" : poke chr, 0, chrcode mes "末尾文字:"+size+"バイト目 "+chr break } loop mes "末尾要削除バイト数:"+del_bytes memset a,$00,del_bytes,size+1 ; 末尾に$00を書き込む mes ""+a notesel a mes "notemax:"+notemax



cerator

リンク

2010/1/1(Fri) 16:50:14|NO.29669

woodfieldsさん、ありがとうございました。
解決できました。



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