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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0918
kasamesで自動で改行されてしまう6未解決


kasa

リンク

2022/9/18(Sun) 22:10:24|NO.97134

文字をスクロールするスクリプトを作っているのですが、Debugウィンドウの省略されるところでmesが改行されてしまいます
文字数をカウントすると、1023バイトのところで改行されてしまいます。どうすれば一行で表示させることができるでしょうか?



この記事に返信する


nennneko5787

リンク

2022/9/19(Mon) 09:25:59|NO.97135

ソースコードを見せてください。ソースコードを見せてくれなきゃわかりません。



沢渡

リンク

2022/9/19(Mon) 10:46:56|NO.97136

こんな形で1024文字分の文字列を作って表示してみましたが、
確かに1023文字目と1024文字目が改行されて表示されますね。

s="X" repeat 10 s+=s loop mes strlen(s) mes s
長い文字列を一気にmesで表示するのではなく、複数の文字列に分け、
mesの第2パラメータに1を指定して繋げて表示するというのはどうでしょうか?



窓月らら

リンク

2022/9/19(Mon) 11:25:09|NO.97137

strmid を使えばよろしいのでは。

text="" repeat 72: text+=" ": loop text+="これはテストメッセージです。" text+="関係ないけど MI392DRV という MML+PCM&波形メモリ音源 開発しています。" text+="ここにきて課題山積で今年のコンテストには間に合わない可能性がでてきたw " text+="その場合は来年用にします。公開は今年中を目指します。窓月らら" x=0: y=224: len=strlen(text) repeat redraw 0 color 255,255,255: boxf: color pos 24,y: mes strmid(text,x,72) color 255,255,255 boxf 24,y,24+64,y+16: boxf 544,y,544+64,y+16 // 文字化けを隠す redraw 1 x++: if x=len { x=0 } await 100 loop



窓月らら

リンク

2022/9/19(Mon) 11:33:56|NO.97138

おやっ、上記でも長い文字列だと改行されるようですね。
なるほど、これは仕様なのかバグなのか? 報告したほうがよさそう。



窓月らら

リンク

2022/9/19(Mon) 12:00:42|NO.97140

不具合か仕様だと思ったので、報告はしてきました。
ひとまず仕様ということで解決策を書いておきます。
memcpyを使い表示する部分だけコピーしてから表示することで解決できます。

text="" repeat 10 // 意図的に1024文字以上にする repeat 72: text+=" ": loop: text+="cnt="+cnt+" " text+="これはテストメッセージです。" text+="関係ないけど MI392DRV という MML+PCM&波形メモリ音源 開発しています。" text+="ここにきて課題山積で今年のコンテストには間に合わない可能性がでてきたw " text+="その場合は来年用にします。公開は今年中を目指します。窓月らら" loop sdim buf,72 // 表示分のバッファ x=0: y=224: len=strlen(text) repeat redraw 0 color 255,255,255: boxf: color memcpy buf,text,72,0,x // メモリ間コピー pos 24,y: mes buf // 表示 ;pos 24,y: mes strmid(text,x,72) // こちらは不具合確認用 color 255,255,255 boxf 24,y,24+64,y+16: boxf 544,y,544+64,y+16 // 文字化けを隠す redraw 1 x++: if x=len { x=0 } await 100 loop



猪野

リンク

2022/9/19(Mon) 12:33:29|NO.97141

こういうことでしょうか。

#include "user32.as" sdim buf,1024 memset buf,'X',1023 mes buf;改行される rect=ginfo_cx,ginfo_cy,8*1023,18+ginfo_cy DrawText hdc,buf,-1,varptr(rect),0;改行されない redraw
以下のスレッドを参考にさせていただきました。

mesの限界?
https://hsp.tv/play/pforum.php?mode=pastwch&num=27463



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