わいあーど頭痛

「ロスト・エンド・クレイドル」更新情報などのブログ

里々でのユーザ入力への対応(2023年7月版)

区切り字(読点やカンマ)・括弧などでめちゃくちゃになってしまうことへの、自分なりの対策です。

更新履歴

  • 2023.7.6 0時20分ごろ
    • ver2(全体的に書き換え)
  • 2023.7.5 22時ごろ
    • 初版公開

概要

基本的にやっているのは、同じ見かけになるユニコード表示(¥_u[0x【16進数】])への差し替えです。

ユニバーサル文字名は↓などで調べられます。
https://tech-unlimited.com/escape-unicode.html
↑のサイトの場合、¥u以降の文字列がそれです。

注意事項

  • バグっていたら教えて下さい。お願いします。
  • タブ文字を【タブ】と表記しています。
  • 新しめの里々でないと動きません。
  • 関数名、単語群名、変数名が他とかぶると誤動作します。
  • さくらスクリプト(半角¥記号)に対するエスケープは考慮していません。
  • ReplaceWaitCharactersで変換済みの文字列をユーザ入力のデフォルト値などに設定する場合、その前に逆方向の変換をかませないと、「\_u[0xほにゃらら]」が見えてしまいます。

使い方の例

*qが押された
>ユーザ名入力テスト

*ユーザ名入力テスト
:\![open,inputbox,ユーザ名,--timeout=0,--option=noclose,--option=noclear,--text="ゆφφー,ざ、め、いφ(1φ)"]

*ユーザ名を教えてもらった
:ユーザ名は「(ユーザ名)」です。

必須

*OnUserInput
>(R0)を空打ちされた【タブ】(vncall,is_empty,R1)
$_tmp【タブ】(vncall,ReplaceCharacters,R0,R1)
$_tmp【タブ】
>(R0)を教えてもらった

*OnUserInputCancel
>(R0)をタイムアウト【タブ】(vncall,compare,R1,たいむあうと)
>(R0)を空打ちされた【タブ】(vncall,compare,R1,くろーず)
@たいむあうと
timeout
@くろーず
close

*ReplaceCharacters
$(A0)【タブ】(A1)
$_tmp【タブ】(while,(単語群「rwc(C0)_b」の存在)&&(単語群「rwc(C0)_a」の存在),1,(vncall,ReplaceCharacters_Loop,A0,(A0)))

*ReplaceCharacters_Loop
$(A0)【タブ】(vncall,replace,A1,rwc(C0)_b,rwc(C0)_a)

@rwc1_b
φ(
@rwc1_a
\_u[0xff08]
@rwc2_b
φ)
@rwc2_a
\_u[0xff09]
@rwc3_b
φφ
@rwc3_a
\_u[0x03c6]
@rwc4_b
φ、
@rwc4_a
\_u[0xff64]
@rwc5_b
φ、
@rwc5_a
\_u[0x3001]
@rwc6_b
φ。
@rwc6_a
\_u[0x3002]
@rwc7_b
φ…
@rwc7_a
\_u[0x2026]
@rwc8_b
φ!
@rwc8_a
\_u[0xff01]
@rwc9_b
φ?
@rwc9_a
\_u[0xff1f]