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



記事削除

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

NO.97134への返信

マスコット

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

名前

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

削除用パスワード

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

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

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