なろう正規傍点対応
同じようにルビ、傍点の書式に関してエッセイを書かれている方から感想でコメントを頂き、感謝しつつ。
なろうタイプの傍点形式が本来、正規であるとのことでそっちのプログラムも作ってみました。
大きな理由としては、半角等の対応とのことで。ウチの想定では半角は使用しない前提だったので、前回のやりかたでも特に問題はないですが。確かに、半角が混ざるとズレそうな感じ。
ってことで、表示差異確認しつつ、なろう正規Verの変換プログラムソースなど。
元 :これがぼうてんだ
簡易:これがぼうてんだ
正規:これがぼうてんだ
元 :これが ぼうTenだ
簡易:これが ぼうTenだ
正規:これが ぼうTenだ
元 :これがBou-Tenだ
簡易:|これがBou-Tenだ《▽▽▽▽▽▽▽▽▽▽▽》
正規:これがBou-Tenだ
これで見ると、やっぱり半角、スペース交じりだと簡易タイプは対応しきれない感じだねえ。
あと、正規版でも、半角スペースが混ざるとちょっと変w ここは後日対応かなぁ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ここから
# クリップボードにコピーした文字列に、カクヨム&小説家になろうで表示できる傍点を付加してクリップボードに返すプログラムです。
SET Mt_Flag TO 0
LOOP WHILE (Mt_Flag) = (0)
# クリップボードからコピーした文字列と、その文字数を取得します。
Clipboard.GetText Text=> ClipboardText
SET Text_Length TO ClipboardText.Length
# 傍点の基本フォーマット(ルビ機能)を準備します
SET Default_Format TO $'''テキスト'''
# ※上記が傍点のフォーマットになるため、 /をパイプに、<<と>>をルビのコマンドに置き換えて下さい。
# ルビとして振る 記号 の一覧を準備します。 デフォルトは『・』(中黒)です。任意に異なる記号を選択できます。
Variables.CreateNewList List=> List
SET Default_Bouten TO $'''・●ヽ△▲▽▼◇◆□■'''
SET Counter TO 0
LOOP WHILE (Counter) < (Default_Bouten.Length)
Variables.AddItemToList Item: Default_Bouten[Counter] List: List
Variables.IncreaseVariable Value: Counter IncrementValue: 1
END
Display.SelectFromListDialog.SelectFromList Title: $'''傍点を選ぼう! 傍点の種類を選んで下さい''' Message: $'''対象【%ClipboardText%】''' List: List IsTopMost: True AllowEmpty: False SelectedItem=> SelectedItem SelectedIndex=> SelectedIndex ButtonPressed=> ButtonPressed
# コピーした文字列=傍点を付けたい文字列の文字数分、傍点記号を複製して文字数をあわせます。
SET Counter TO 0
SET Bouten TO SelectedItem
# 傍点のフォーマットに、コピーした文字列の中の一文字と、作成した傍点記号の文字列をセットします。
SET Formated_Text TO NULL
LOOP WHILE (Counter) < (ClipboardText.Length)
Text.Replace Text: Default_Format TextToFind: $'''テキスト''' IsRegEx: False IgnoreCase: False ReplaceWith: ClipboardText[Counter] ActivateEscapeSequences: False Result=> Replaced
Text.Replace Text: Replaced TextToFind: $'''おきかえもじ''' IsRegEx: False IgnoreCase: False ReplaceWith: Bouten ActivateEscapeSequences: False Result=> Replaced
SET Formated_Text TO $'''%Formated_Text%%Replaced%'''
Variables.IncreaseVariable Value: Counter IncrementValue: 1
END
# 出来上がったテキストをクリップボードに逆コピーします。
Clipboard.SetText Text: Formated_Text
Display.ShowMessageDialog.ShowMessage Title: $'''傍点のフォーマットを完了。以下のテキストをクリップボードにコピー済み''' Message: $'''%Formated_Text%
※OKを押すと、次のクリップボードを処理します。キャンセルで終了します''' Icon: Display.Icon.Information Buttons: Display.Buttons.OKCancel DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed2
IF ButtonPressed2 = $'''Cancel''' THEN
# キャンセルボタンを押した場合、プログラムを終了します。OKボタンの場合、ループの最初に戻って処理を繰り返します。
SET Mt_Flag TO 99
END
END
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ここまで
取り急ぎ、以上!