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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
1112
Y_repeatそろそろHSPUTFを使おうかなと17解決


Y_repeat

リンク

2021/11/12(Fri) 23:48:35|NO.94366

自分もそろそろHSP3UTFを使おうかなと思ってるんですがどんなかんじなんですか?
自分では対処仕切れない問題とか出るかなー?とか思って敬遠してるかんじです
HSP3UTFを使う上での不具合とかまとまってるページとかありますか?
例えばSJISにおける\0不具合みたいな不具合で

自分は今回のプロコンでhsp3clで作成して応募したんですけど
併用は出来るかんじなんすか?気をつけなければいけない問題等あるのかな

等考えてイマイチ移行出来ない現状でした



この記事に返信する


リンク

2021/11/14(Sun) 14:28:44|NO.94370

使えばわかるよ



Y_repeat

リンク

2021/11/14(Sun) 16:45:04|NO.94371

どうもすみません。マニュアルとサンプルを見てなんとなくわかってきました

マニュアルでは
>現在のバージョンでは、スクリプトエディタで編集する文字コードは
>SJISになりますので、ソースコード自体をunicodeで記述することはできません。
との事ですがHSP3UTFを使用する場合のオススメエディタとかありますか?

追記:軽くググったかんじではサクラエディタとAtomをおすすめしてました
サクラエディタの方が軽そうですが、マクロに関しては全然わかってないっていうね



zrs90(5さい)

リンク

2021/11/14(Sun) 16:56:16|NO.94372

Windows7 32ビット+すまほ投稿の部外者ですが

バグ、不具合等は、この掲示板で、スレッドを地道に
探るのが、一番良いようです。私も、外部サイトを
調べたんですが、まとまった記事は
見つけられませんでした。


環境構築しやすく、使い勝手の良いエディタが
一番良いのですが、サイト等を見ている感じでは
vscode を使っている方が多いようです。
(※Microsoft製ですから、C++の記述や検索にも
使いやすく作ってる訳で...)


この件は、私も知りたいので、情報があれば
教えていただきたいです。



とあるプログラマ

リンク

2021/11/14(Sun) 19:51:23|NO.94373

私は普段からUTF8版で組んでいますが、UTF-8版特有のバグというのはパッと思いつかないくらい無いですね。
私は通常Win32API周りを扱うので、それ以外でのバグは分からないですが…


むしろバグというより少し面倒なのが、UTF8版で扱うUnicodeは文字通りUTF-8なんですが、Windows側が扱ってるUnicodeがUTF-16なのでUnicode版のWin32APIに対して純粋に文字列を渡しても文字化けしてしまうという点ですかね。
なので○○W系の関数に文字列を渡すときはcnvstowでUTF-16に変換して、関数から文字列を受け取ったときは逆にconvwtosでUTF-8に戻すという手間が発生します。(このときバッファのサイズも変わるのでかなりややこしい)
しかも、○○W系のwsptr引数に文字列を渡すときにそのまま "文字列" で渡しても大丈夫なときと文字化けするときがあるので、私もUTF-8周りのこの辺の仕様はよく分かっていません…

ということで、UTF-8版はバグよりも文字列周りの扱いが結構複雑だなと個人的に感じています。(Win32API使わないならあまり関係ないですが)

それと一番重要なのが、掲示板やネット上に転がってるサンプルやモジュールは基本的にShiftJIS版でのものなので、UTF-8版だとそのままじゃ使えないケースは結構あります。この書き換え作業も結構面倒くさい。


なので特別Unicode文字を使いたい場合以外はShiftJIS使うほうが無難かなぁという感じなんですが、今のWindowsはUnicodeが標準ですしファイルパスにUnicode文字が含まれてるとShiftJISで組んでたらバグるしで、どっちも一長一短というところでしょうか。
バグとかは一旦置いておいて、想定する用途に合わせてShiftJIS版とUTF-8版のどちらがいいか考えてみるといいかもしれません。


追記
私はエディタはAtom→VSCodeと使っています。
正直標準のHSEDは機能に乏しいので、文字コード云々抜きにもAtomやVScodeのほうが作業効率が断然上がるのでお勧めです。



Y_repeat

リンク

2021/11/15(Mon) 00:10:20|NO.94376

こんばんわ。
>zrs90(5さい)さん
>この件は、私も知りたいので、情報があれば
>教えていただきたいです。
同じ疑問を持った人がいて嬉しいです

>とあるプログラマさん
>私は普段からUTF8版で組んでいますが、UTF-8版特有のバグというのはパッと
>思いつかないくらい無いですね。
>私は通常Win32API周りを扱うので、それ以外でのバグは分からないですが…

>むしろバグというより少し面倒なのが、UTF8版で扱うUnicodeは文字通りUTF-8なんですが、
>Windows側が扱ってるUnicodeがUTF-16なのでUnicode版のWin32APIに対して純粋に
>文字列を渡しても文字化けしてしまうという点ですかね。
情報ありがとうございます。わからなかったらはまっちゃいそうです。
Win32APIはたまにコピペするくらいですが

軽くググってみたところ変換モジュールがありました
SJIS⇔UTF8相互変換モジュール †
https://wiki.hsp.moe/Module%EF%BC%8FSJIS%E2%87%94UTF8%E7%9B%B8%E4%BA%92%E5%A4%89%E6%8F%9B%E3%
83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB.html
試してみたら変換は上手くいきました
しかし変換後のテキストに更に変換かけると文字化けしましたw
テキストがUTF8だったら無視して欲しいのです
超簡単プログラム言語みたいのをプロコンに投稿したのですが
まずsampleのファイルを変換しよう。と思い
まとめて変換したいです
でUTF8になってるのは無視してSJISのテキストだけ変換したいのですが
今後SJISになってるのを変換を忘れて追加しちゃった時を考えてです
しかしまとめて変換してくてもUTF8のテキストを無視してくれない
というのが現状です



Y_repeat

リンク

2021/11/15(Mon) 00:34:40|NO.94377

エディタはですね
自分ノートPCはHDDの消耗を考え毎回シャットダウンしてるので
そんなに使わないのでアップデートさせられる確率も高くて

で、winタブレッドを毎回スリープして使ってます
atom動かなかった気がします
自分、PCの雑誌を見てよくわかんないけど広告を見てVC++から入ったので
よくわからないコマンドがいっぱいあるのでVSCODEは苦手です

HSPはデフォエディタで
エディタとしてはvim使ってますね
UTF8用とはしてもvimはどうなんでしょうw
とうとうvimでHSP使う日が来たのかってかんじなんですが

とあるプログラマさんの意見では
sjisがいいかUTF8がいいかよく考えてとのことですが
今の路線しばらくやってみたいので
2、3年か5年くらい続けるかもしれません
となると今のうちにUTF8に対応しとこうって感じです
今はまだsjisが主流かもしれませんが
2、3年か5年くらい経ってもsjisが主流なのかは
ちょっとわかりません

マニュアルもHSPで作成しましたし
本体はいいとしてもマニュアルはutf8の方がいいかなと思ってます
Rubyの本を読んでもやたら文字コードの事を書いてますし
エディタの本を読んでもやたら文字コードの事を書いてるので
影響されてるかもしれません



zrs90(5さい)

リンク

2021/11/15(Mon) 20:42:49|NO.94381

とあるプログラマさんへ
同掲示板の過去スレッドを始め、貴重な情報
ありがとうございました。


私の場合、大した物は作ってないので
(※最近は、何も作ってないなぁ...)

・たまに出る、標準エディタの描画バグ(※スクリプト消失とか
キャレット行のアンダーラインが何本も表示等)

・80字折り返しがない(※1行が長いスクリプトがある場合は
印刷時に問題があるので、他のエディタから印刷してます。
探せば多分、プラグイン等があると思いますが)
以外は、現行のエディタで、ほぼ問題は無いのですが

あまり進まない?(※進められないのが、正解か?)
標準エディタのバグ修正と、今後の事を考えると
Win10以降のPCの確保と、utf-8での制作に慣れて
置いた方が良いのかな?...と考えていたタイミングで
このスレッドが出たので、乗っからせてもらいました。

ー追記ー

ただ、とあるプログラマさん程の方が、面倒と言っている
事の数々が、私程度のレベルで、何とか出来るとは
とても、思えないんだよなぁ...



Y_repeat

リンク

2021/11/15(Mon) 23:56:18|NO.94385

LISTBOXにFILE名を書いているのを読み込ませて
ボタンを押すと項目名のFILENAMEがクリップボードに入るTOOLを
書こうと思いましたが
txtにFILE名を改行して記述したのを用意して
コピーしてさっきのTOOLのボタンを押すと
UTF8かわかるので(違ってたら文字化けします)
なんとなく目的は達成しましたので
こんなかんじでUTFのFILEに変換していこうと思います

とりあえず解決は押しますが
このスレの内容が膨らんできているので
続けるのもアリで



zrs90(5さい)

リンク

2021/11/16(Tue) 02:08:23|NO.94386

エディタや、文字コード等の事を調べていて
分かった事ですが...

encode.as と言うモジュールが、hsp3の
パッケージ内に同梱されているそうです。
これ使うと、utf-8への変換はかなり手軽に出来そう。

こんな便利そうなモジュールなのに
何故か、マニュアルは同梱されてないらしい。
スレッド貼って置きます。
後、hsファイルも、手に入るようです。

http://hsp.tv/play/pforum.php?mode=pastwch&num=84168



zrs90(5さい)

リンク

2021/11/16(Tue) 02:50:10|NO.94387

申し訳ないです。上で投稿した内容に
問題がありました。

ie4.0以降が、必要らしいので
現在のWindows10、11では
動かない可能性が高いです。

エッジのie互換機能から、使えると
良いのですが。



TOMATO

リンク

2021/11/16(Tue) 03:49:27|NO.94388

そもそも、hsp3utfランタイムの場合、別途 #include せずに使用できる
以下の文字コード変換命令が標準で搭載されています。
普通はこれで事足りるはずです。


cnvstow : UTF-8 → UTF-16 cnvwtos() : UTF-16 → UTF-8 cnvstoa : UTF-8 → Shift_JIS cnvatos() : Shift_JIS → UTF-8



TOMATO

リンク

2021/11/16(Tue) 04:02:38|NO.94389

> ie4.0以降が、必要らしいので
> 現在のWindows10、11では
> 動かない可能性が高いです。

Windows 10 でも IEは手動で削除できますが、iexplore.exe が削除されるだけなので、
他のIEを構成するDLLファイルなどは残っています。

Windows 11 では IEは正式に削除されていますが、
実のところ削除(という名の無効化)されたのはIEを構成するファイルの一部部分のみとなります。
(iexplore.exe がEdgeにリダイレクトされるように仕様変更されただけ)

つまり、encode.as による文字コード変換は、
IEが削除されようとも引き続き実行可能となっています。
(実機でも確認済み)

なお、encode.as は IMultiLanguage (Mlang.dll) を使用して実装されています。
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa741022(v=vs.85)

【ご参考】
デスクトップアプリとしてのIEは終了するが、2029年までは完全に無くなるわけではない
https://ascii.jp/elem/000/004/056/4056944/2/



zrs90(5さい)

リンク

2021/11/16(Tue) 08:37:12|NO.94390

TOMATOさん ご指摘ありがとうございます。
私、ie と Edge 他の事、誤解してました。

後、HDL/自分で貼ったスレッド自体を
ちゃんと調べる/読むべきでした。
少なくとも、文字コードの件は
気が付けたはずです。

...ありがとうございました。



Y_repeat

リンク

2021/11/16(Tue) 13:34:04|NO.94391

>トマトさん
>そもそも、hsp3utfランタイムの場合、別途 #include せずに使用できる
>以下の文字コード変換命令が標準で搭載されています。
>普通はこれで事足りるはずです。
コメントありがとうございます
ファイルをテラパッドとかで一個一個変換するのめんどうだなと思っていました
結局一個一個変換してるんですがw
HSPUTFランタイムのHSPの中でSJISファイルを使いたいのではなく
あらかじめファイルをUTF8に変換したかったかんじでした
でもLINK先の著作権がいまいちわからなく
とあるプログラマさんが言っていたような
サンプルがHSPUTFランタイムを
使用していなかった状況なので大分楽になると思います
自分のHSPのバージョンが古いのか
なかなかHSPUTFの項目を見つけられなかったのは謝ります
二つに分割したTOOLを合成出来そうなかんじです

後はコンパイルどうしようかと
コマンドラインコンパイラがいいっぽいんですが
コマンドプロンプトはなんとなく×ボタン押しがちで
コマンドプロンプトの履歴も消えてしまうので
いまいち使いたくないんですよね
https://seesaawiki.jp/zuzazann/d/bat%20gcc
こんなかんじのバッチファイルのHSPのHSPUTF版みたいのを
誰か書いていただけると嬉しいのですが
LINK先の作者はtytyさんで許可をもらって公開してるかんじです
コンパイルの問題が解決出来れば
エディタの守備範囲も広がりそうですね
自分はvimでHSPやりそうな展開ですw

そういえばプロコンの番組のアナウンスないっすね
今年はないんでしょうか。楽しみにしてたのに
それと自分も無事一次審査通過してほっとしました
自分もプロコン歴長くなってきましたが
この先が壁で一度も受賞したことありません(笑)

追記:そう言えばHSPのバッチファイルに編集した記憶が
https://seesaawiki.jp/zuzazann/d/bat%20HSP
そしてコメントが嘘書いてるっぽいすねw



Y_repeat

リンク

2021/11/18(Thu) 14:14:07|NO.94400

TOOL改良したんですけど需要あるんすかねえ?
とりあえず改良前のTOOLは削除しました
解決まで削除しちゃったかも



Y_repeat

リンク

2021/11/18(Thu) 23:15:49|NO.94405

ちゃちゃっとhspc試してたら上手くいきました
バッチファイルです
FILE名を「HSPUTF8DD.bat」等にしてください
英数字のみの方が無難です

@echo off echo HSPスクリプトファイルをコンパイルして実行します rem 次の行をお使いのPCのHSPCのPATHに書き換えてください echo cd "C:\hsp36" rem 次の行をお使いのPCのHSPCのPATHに書き換えてください cd "C:\hsp36" rem パラメータはご自由に echo hspc -iaCDdRw "%~1" echo. rem パラメータはご自由に hspc -iaCDdRw "%~1" echo. echo. pause
こんなかんじですremはコメントechoはmesみたいの
cdはカレントディレクトリ変更です

https://dev.onionsoft.net/seed/info.ax?id=1392
ここらへんからhspcをDLして解凍して
>hspc.exeをhsp3.exeと同じディレクトリに挿⼊します。
とのことで
FILE名:「Hi.hsp」等半角英数字のみだと思います

#include "hsp3utf.as" mes "こんにちわ" stop
等のスクリプトを作成してテラパッド等で
utf8にして保存しましょう
そしたらマニュアルを見ながらコマンドプロンプトで
Hi.hspを実行してみてください
それが上手くいったら
>バッチファイルの
>rem 次の行をお使いのPCのHSPCのPATHに書き換えてください
>echo cd "C:\hsp36"
>rem 次の行をお使いのPCのHSPCのPATHに書き換えてください
>cd "C:\hsp36"

>rem パラメータはご自由に
>echo hspc -iaCDdRw "%~1"
>echo.
>
>rem パラメータはご自由に
>hspc -iaCDdRw "%~1"
の部分を使う人のかんじで書き換えましょう
一回保存してバッチファイルのアイコンにHi.hspを
ドラッグアンドドロップして
文字化けしないで表示出来ればたぶんOKです
お疲れ様



Y_repeat

リンク

2021/11/30(Tue) 20:54:19|NO.94577

現在、マニュアルをutf8化しようとしています
マニュアルはHSPで作成しました
ちゃちゃっと全部utf8に変換して実行
やっぱりエラーありますね
文字化けも
1FILEづつ確認しながら#includeしてます
めんどくさいw

とりあえずエラーの原因の一つは
stack_calc_manual_insn_compare.hsp

goto *@f *@
stack_calc_manual.hsp

#include "hsp3utf.as" goto *avoid_inc #include "stack_calc_manual_insn_compare.hsp" *avoid_inc /////////////////////////////////////////////////////////////// screen 0,800,600 *manual_begin cls 0 objsize 300,28 pos 10, 10 font "",20,0 objmode 2 mes "stack式CUI計算機 芳ステム2021 (YOSHISUTEMU_2021)マニュアル\n" stop *tmp stop
この二つをutf8にしてhspcでutf8スクリプト実行みたく
実行すると文字化けします
stack_calc_manual_insn_compare.hsp
をインクルードしないで(実際はスクリプト入ってます)
stack_calc_manual.hspにコピペすると何も問題ありません



記事削除

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

NO.94366への返信

マスコット

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

名前

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

削除用パスワード

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

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

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