REM ======================================== REM REM 日本語かな文字変換ツール REM カナカナ7(セブン)WIN10版 ver0.991 REM REM CopyRight MIYAMA. 2023 June REM KazutomiMiyamaSub@gmail.com REM kazutomi.html.xdomain.jp REM REM made by VB.net 2019 REM REM ======================================== Option Explicit On Imports System Imports System.IO Imports System.Text.RegularExpressions Class MainWindow Dim Re As Regex Dim FSO = CreateObject("Scripting.FileSystemObject") Dim VacantCHR As String = "" Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded With In_TXT .Height = 400 .Width = 400 .AcceptsReturn = True .Text = VacantCHR End With With OutTXT .Height = 400 .Width = 400 .AcceptsReturn = True .Text = VacantCHR End With With ClrBTN .Height = 60 .Width = 400 .Content = "ALL Clear" End With With ExeBTN .Height = 60 .Width = 400 .Content = "Execute" End With With HankakuDakuTenHaretsuOnTenAndManyCRLFCHK .Height = 40 .Width = 800 .Content = "改行に分割された半角濁点記号&半角破裂音記号を清音に合体させ、なおかつ過剰な改行を一つに圧縮する " .IsChecked = False End With End Sub Sub WriteOutputFile(ContentsSTR As String) Dim WTS = FSO.CreateTextFile("output.txt") WTS.write(ContentsSTR + vbCrLf) WTS.close End Sub Private Sub ClrBTN_Click(sender As Object, e As RoutedEventArgs) Handles ClrBTN.Click In_TXT.Text = VacantCHR OutTXT.Text = VacantCHR End Sub Private Sub ExeBTN_Click(sender As Object, e As RoutedEventArgs) Handles ExeBTN.Click Dim OutSTR As String Dim MSGSTR As String MSGSTR = "半角数字で変換モードを入力してください" + vbCrLf + vbCrLf + "全角ひらがな > 全角カタカナ " + "1" + vbCrLf + "全角ひらがな > 半角カナ   " + "2" + vbCrLf + vbCrLf + "全角カタカナ > 全角ひらがな " + "3" + vbCrLf + "全角カタカナ > 半角カナ " + "4" + vbCrLf + vbCrLf + "半角カナ > 全角ひらがな " + "5" + vbCrLf + "半角カナ > 全角カタカナ " + "6" + vbCrLf + vbCrLf + "なにもしない " + "7" Dim ChangeModeSTR As String = InputBox(MSGSTR) Dim ChangeMode As Integer Select Case ChangeModeSTR Case "1" : ChangeModeSTR = "1" Case "2" : ChangeModeSTR = "2" Case "3" : ChangeModeSTR = "3" Case "4" : ChangeModeSTR = "4" Case "5" : ChangeModeSTR = "5" Case "6" : ChangeModeSTR = "6" Case "7" : ChangeModeSTR = "7" End Select ChangeMode = CInt(Val(ChangeModeSTR)) If ChangeMode < 1 Or 7 < ChangeMode Then MessageBox.Show("変換モードが正しくありません。") Else If ChangeMode = 7 Then MessageBox.Show("なにもしない、が選択されましたので、" + vbCrLf + "なにもしません。Zzzzz......") Else OutSTR = ControlCHRChange(ChangeMode) OutTXT.Text = OutSTR WriteOutputFile(OutSTR) End If End If End Sub Function ControlCHRChange(ChangeMode As Integer) Dim tmpSTR As String = VacantCHR Dim i As Integer Dim j As Integer If In_TXT.Text = VacantCHR Then MessageBox.Show("入力ウィンドウが空白です。") Else tmpSTR = In_TXT.Text ' --半角濁音破裂音記号、改行による分割状態対応------------------------------------------------------- If HankakuDakuTenHaretsuOnTenAndManyCRLFCHK.IsChecked = True Then tmpSTR = Re.Replace(tmpSTR, vbLf, vbCr) '一度キャリッジリターンに統一 For i = 1 To 20 tmpSTR = Re.Replace(tmpSTR, vbCr + vbCr, vbCr) '重複行を指数的に削除 Next For j = 0 To 1 '文字コード222:半角濁点 223:半角破裂点(まる) tmpSTR = Re.Replace(tmpSTR, vbCr + Chr(222 + j), Chr(222 + j) + vbCr) '任意文字と濁破裂記号の間に改行がある場合は、濁破裂記号を前に繰り出す Next tmpSTR = Re.Replace(tmpSTR, vbCr + vbCr, vbCr) '繰り出した結果の二重改行を補正 tmpSTR = Re.Replace(tmpSTR, vbCr, vbCrLf) '改行コードをwindows形式に戻す End If '---------------------------------------------------------- 'sample ひらがな カタカナ 半角カナ 'tmpSTR = CHRChange(tmpSTR, ChangeMode, "あ", "ア", "ア") REM 逐次処理論理チャート REM 半角カナから変換する場合、 REM 半角の濁音記号、破裂音記号が都合該当二文字神作になることを配慮し、 REM 濁音、破裂音の文字から変換する仕様、 REM みための便宜上、文字表は末尾から処理 REM ひらがな域に該当文字がない三例、 REM モード1 全角ひら > 全角カナ 入力文字に該当なし REM 2 全角ひら > 半角カナ 入力文字に該当なし REM 3 全角カナ > 全角ひら 出力文字に該当なし REM 4 全角カナ > 半角カナ ok REM 5 半角カナ > 全角ひら 別件が変換優先 REM 6 半角カナ > 全角カナ 別件が変換優先 If ChangeMode = 4 Then tmpSTR = CHRChange(tmpSTR, ChangeMode, "", "ヶ", "ケ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "", "ヵ", "カ") REM ただしヴは半角二文字なので例外 REM モード1 全角ひら > 全角カナ 入力文字に該当なし REM 2 全角ひら > 半角カナ 入力文字に該当なし REM 3 全角カナ > 全角ひら 出力文字に該当なし REM 4 全角カナ > 半角カナ ok REM 5 半角カナ > 全角ひら 別件が変換優先 REM 6 半角カナ > 全角カナ ok tmpSTR = CHRChange(tmpSTR, ChangeMode, "", "ヴ", "ヴ") End If If ChangeMode = 6 Then tmpSTR = CHRChange(tmpSTR, ChangeMode, "", "ヴ", "ヴ") End If tmpSTR = CHRChange(tmpSTR, ChangeMode, "ん", "ン", "ン") tmpSTR = CHRChange(tmpSTR, ChangeMode, "を", "ヲ", "ヲ") REM 別件と半角カナ文字が重複する例 REM ゆえに半角カナからの変換を禁止 REM REM コメントアウトのワは比較のために残す。 If 1 <= ChangeMode And ChangeMode <= 4 Then tmpSTR = CHRChange(tmpSTR, ChangeMode, "ゑ", "ヱ", "エ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ゐ", "ヰ", "イ") 'tmpSTR = CHRChange(tmpSTR, ChangeMode, "わ", "ワ", "ワ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ゎ", "ヮ", "ワ") End If tmpSTR = CHRChange(tmpSTR, ChangeMode, "わ", "ワ", "ワ") REM ラ行 tmpSTR = CHRChange(tmpSTR, ChangeMode, "ろ", "ロ", "ロ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "れ", "レ", "レ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "る", "ル", "ル") tmpSTR = CHRChange(tmpSTR, ChangeMode, "り", "リ", "リ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ら", "ラ", "ラ") REM ヤ行 tmpSTR = CHRChange(tmpSTR, ChangeMode, "ょ", "ョ", "ョ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "よ", "ヨ", "ヨ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ゅ", "ュ", "ュ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ゆ", "ユ", "ユ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ゃ", "ャ", "ャ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "や", "ヤ", "ヤ") REM マ行 tmpSTR = CHRChange(tmpSTR, ChangeMode, "も", "モ", "モ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "め", "メ", "メ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "む", "ム", "ム") tmpSTR = CHRChange(tmpSTR, ChangeMode, "み", "ミ", "ミ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ま", "マ", "マ") REM ハ行 破裂音>濁音>清音 tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぽ", "ポ", "ポ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぼ", "ボ", "ボ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ほ", "ホ", "ホ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぺ", "ペ", "ペ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "べ", "ベ", "ベ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "へ", "ヘ", "ヘ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぷ", "プ", "プ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぶ", "ブ", "ブ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ふ", "フ", "フ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぴ", "ピ", "ピ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "び", "ビ", "ビ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ひ", "ヒ", "ヒ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぱ", "パ", "パ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ば", "バ", "バ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "は", "ハ", "ハ") REM ナ行 tmpSTR = CHRChange(tmpSTR, ChangeMode, "の", "ノ", "ノ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ね", "ネ", "ネ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぬ", "ヌ", "ヌ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "に", "ニ", "ニ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "な", "ナ", "ナ") REM ダ行 濁音>清音 tmpSTR = CHRChange(tmpSTR, ChangeMode, "ど", "ド", "ド") tmpSTR = CHRChange(tmpSTR, ChangeMode, "と", "ト", "ト") tmpSTR = CHRChange(tmpSTR, ChangeMode, "で", "デ", "デ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "て", "テ", "テ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "づ", "ヅ", "ヅ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "つ", "ツ", "ツ") REM 吃音重複事例はなし tmpSTR = CHRChange(tmpSTR, ChangeMode, "っ", "ッ", "ッ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぢ", "ヂ", "ヂ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ち", "チ", "チ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "だ", "ダ", "ダ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "た", "タ", "タ") REM サ行 濁音>清音 tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぞ", "ゾ", "ゾ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "そ", "ソ", "ソ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぜ", "ゼ", "ゼ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "せ", "セ", "セ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ず", "ズ", "ズ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "す", "ス", "ス") tmpSTR = CHRChange(tmpSTR, ChangeMode, "じ", "ジ", "ジ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "し", "シ", "シ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ざ", "ザ", "ザ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "さ", "サ", "サ") REM ガ行 濁音>清音 tmpSTR = CHRChange(tmpSTR, ChangeMode, "ご", "ゴ", "ゴ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "こ", "コ", "コ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "げ", "ゲ", "ゲ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "け", "ケ", "ケ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぐ", "グ", "グ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "く", "ク", "ク") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぎ", "ギ", "ギ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "き", "キ", "キ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "が", "ガ", "ガ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "か", "カ", "カ") REM ア行 まるまり音>清音 tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぉ", "ォ", "ォ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "お", "オ", "オ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぇ", "ェ", "ェ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "え", "エ", "エ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぅ", "ゥ", "ゥ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "う", "ウ", "ウ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぃ", "ィ", "ィ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "い", "イ", "イ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "ぁ", "ァ", "ァ") tmpSTR = CHRChange(tmpSTR, ChangeMode, "あ", "ア", "ア") REM 長音 tmpSTR = CHRChange(tmpSTR, ChangeMode, "ー", "ー", "ー") End If ControlCHRChange = tmpSTR End Function Function CHRChange(tmpSTR As String, ChangeMode As Integer, Hira As String, Kata As String, Hankaku As String) Dim TS As String 'TargetSTR Dim OS As String 'OverWriteSTR Select Case ChangeMode Case 1 : TS = Hira : OS = Kata Case 2 : TS = Hira : OS = Hankaku Case 3 : TS = Kata : OS = Hira Case 4 : TS = Kata : OS = Hankaku Case 5 : TS = Hankaku : OS = Hira Case 6 : TS = Hankaku : OS = Kata End Select CHRChange = Re.Replace(tmpSTR, TS, OS) End Function End Class REM ======================================== REM REM ファイルの終わり。 REM REM ========================================