(57)【要約】      （修正有）【課題】空白や、小文字のアルファベット（a-z）にも対応する文字列ソートを提供する。【解決手段】最初に、入力用と出力用とソート用の配列を宣言し、アルファベットの”a”から”ｚ”までを１から26までの数字で昇順に数値を対応させる。左側のテキストボックスにアルファベットの文字を入力し、その文字列を入力用の配列に代入し、textboxに入力したデータをアルファベットの順番の数字に変換する。そして、入力したアルファベットをソートし、ソートしたデータをtextbox2の出力用のデータに変換、出力用の配列に代入していき、最後に右側のテキストボックスに出力する。【選択図】図１
2012141860.tif 000002
【特許請求の範囲】
【請求項１】
VisualBasic（VisualStudio２００８）を使用し、ウィンドウ内の左のテキストボックスに文字を入力し、右のテキストボックスに文字整列（ソート）後の結果を表示するシステムである。ウィンドウ内にSort（文字整列）ボタンとEnd(終了)ボタンがある。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字整列(ソート)に関するプログラムのシステムである。
【背景技術】
【０００２】
ソートに関して基本的なプログラムは選択ソート、クイックソート、バブルソート等、さまざまであるが、それらのプログラムは、文字をそのまま扱うものである。
【０００３】
しかし、それらのソートは、処理系に依存したアルファベットをそのままソートするものであるが、本発明は、文字対応数値テーブルを用意し、その文字列に対応する数値の昇順に並べるものである。そうすることにより、文字対応数値を変更することにより、アルファベットの順番も変更できるものである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、翻訳システムを作成しようと思って、副次的に作成られたものである。
【課題を解決するための手段】
【０００５】
【発明の効果】
【０００６】
【図面の簡単な説明】
【０００７】
【図１】図１はハンドスキャナの実施方法を示した説明図である。（実施例１）
【図２】図２はハンドスキャナの実施方法を示した説明図である。（実施例２）
【発明を実施するための形態】
【０００８】
本発明は、コンピュータ上から実行する形態である。
【実施例１】
【０００９】
図1は左のテキストボックスに”bedac”を入力しSortボタンを押すと右のテキストボックスに”abcde”を出力する。  
【プログラム１】
【００１０】
（ファイル名：Form1.vb）
Public Class Form1
Dim i_max As Integer       '入力文字の最大値
Const alphabet_max As
Integer = 26  'アルファベットの最大文字数//
Dim input As String         
'入力用の配列 
Dim output As String        
'出力用の配列
Dim alphabet_table() As
String = {"a",
"b", "c",
"d", "e",
"f", "g",
"h", "i",
"j", "k",
"l", "m",
"n", "o",
"p", "q",
"r", "s",
"t", "u",
"v", "w",
"x", "y",
"z", "
"}
'アルファベットを数字に変換するためのテーブル 
Dim alphabet_trans_table() As
String = {"1",
"2", "3",
"4", "5",
"6", "7",
"8", "9",
"10", "11",
"12", "13",
"14", "15",
"16", "17",
"18", "19",
"20", "21",
"22", "23",
"24", "25",
"26", "99"}
'アルファベットの数字の順番に対応する文字のテーブル
Private Sub
Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
End Sub
Private Sub
TextBox1_TextChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
TextBox1.TextChanged
input = TextBox1.Text
i_max = input.Length()
End Sub
Private Sub
Button1_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
Button1.Click
Dim input_trans(i_max - 1) As
String   '入力用した文字を数字に変換した配列
Dim output_trans(i_max - 1) As
String   '出力用する文字に変換する数字の配列
Dim sort_temp(i_max - 1) As
String     'ソート用の配列
Dim i As Integer      '  ループ用の変数
Dim j As Integer      '  ループ用の変数
Dim k As Integer      '  ソート用の変数
'outputの初期化
output = ""
'textboxに入力したデータをアルファベットの順番の数字に変換
For i = 0 To i_max -
1
For j = 0 To
alphabet_max
If input.Chars(i) = alphabet_table(j) Then
input_trans(i) = alphabet_table(j) : j = alphabet_max
End If
Next
Next
'入力したアルファベットをソート
k =
0
For j = 0 To
alphabet_max
For i = 0 To
i_max - 1
If input_trans(i) = alphabet_table(j) Then
sort_temp(k) = alphabet_trans_table(j) : k = k + 1
End If
Next
Next
'ソートしたデータをtextbox2の出力用のデータに変換
For i = 0 To i_max -
1
For j = 0 To
alphabet_max
If sort_temp(i) =
alphabet_trans_table(j) Then
output_trans(i) = alphabet_table(j) : j = alphabet_max
End If
Next
Next
'出力用の変数に出力する
For i = 0 To i_max -
1
output = output & output_trans(i)
Next
'テキストボックスに出力
TextBox2.Text = output
End Sub
Private Sub
TextBox2_TextChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
TextBox2.TextChanged
End Sub
Private Sub
Button2_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
Button2.Click
End
End Sub
End Class
【プログラム２】
【００１１】
（ファイル名：Form1designer.vb）
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
_
Partial Class Form1
Inherits System.Windows.Forms.Form
'フォームがコンポーネントの一覧をクリーンアップするために
dispose をオーバーライドします。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal
disposing As Boolean)
Try
If disposing AndAlso
components IsNot Nothing
Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows フォーム デザイナで必要です。
Private components As
System.ComponentModel.IContainer
'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。
'Windows フォーム デザイナを使用して変更できます。  
'コード エディタを使って変更しないでください。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub
InitializeComponent()
Me.TextBox1 = New
System.Windows.Forms.TextBox
Me.TextBox2 = New
System.Windows.Forms.TextBox
Me.Button1 = New
System.Windows.Forms.Button
Me.Button2 = New
System.Windows.Forms.Button
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New
System.Drawing.Point(12, 58)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New
System.Drawing.Size(110, 19)
Me.TextBox1.TabIndex = 0
'TextBox2
'
Me.TextBox2.Location = New
System.Drawing.Point(170, 58)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New
System.Drawing.Size(110, 19)
Me.TextBox2.TabIndex = 1
'
'Button1
'
Me.Button1.Location = New
System.Drawing.Point(90, 145)
Me.Button1.Name = "Button1"
Me.Button1.Size = New
System.Drawing.Size(110, 23)
Me.Button1.TabIndex = 2
Me.Button1.Text = "Sort"
Me.Button1.UseVisualStyleBackColor = True
'
'Button2
'
Me.Button2.Location = New
System.Drawing.Point(90, 197)
Me.Button2.Name = "Button2"
Me.Button2.Size = New
System.Drawing.Size(110, 23)
Me.Button2.TabIndex = 4
Me.Button2.Text = "End"
Me.Button2.UseVisualStyleBackColor = True
'
'Form1
'
Me.AutoScaleDimensions = New
System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode =
System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(292,
266)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.TextBox2)
Me.Controls.Add(Me.TextBox1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents
TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents
TextBox2 As System.Windows.Forms.TextBox
Friend WithEvents
Button1 As System.Windows.Forms.Button
Friend WithEvents Button2
As System.Windows.Forms.Button
End Class
'
【実施例２】
【００１２】
図２は左のテキストボックスに”edcba”を入力しSortボタンを押すと右のテキストボックスに”abcde”を出力する
【産業上の利用可能性】
【００１３】
子供用のゲームや、不規則文字列の並べ替え、処理系に依存しない並べ替えに利用できる。
【符号の説明】
【００１４】
【図１】
2012141860.tif 000003
【図２】
2012141860.tif 000004
【手続補正書】
【提出日】平成23年2月2日(2011.2.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
VisualBasic（VisualStudio２００８）を使用し、ウィンドウ内の左のテキストボックスに文字を入力し、右のテキストボックスに文字整列（ソート）後の結果を表示するシステムである。ウィンドウ内にSort（文字整列）ボタンとEnd(終了)ボタンがある。使用している技術は、イベントドリブン、配列、ソート、番兵である。
【手続補正書】
【提出日】平成23年2月2日(2011.2.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
VisualBasic（VisualStudio２００８）を使用し、ウィンドウ内の左のテキストボックスに文字を入力し、右のテキストボックスに文字整列（ソート）後の結果を表示するシステムである。ウィンドウ内にSort（文字整列）ボタンとEnd(終了)ボタンがある。使用している技術は、イベントドリブン、配列、ソート、番兵である。表示は人の顔を模したものである。プログラムはマイコン等に利用可能である。
【手続補正書】
【提出日】平成23年2月23日(2011.2.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
プログラムファイルの末尾にべつの別の場所の  ‘  が付いている。
（００１０）
（ファイル名：Form1.vb）
Public Class Form1
Dim
i_max As Integer       '入力文字の最大値
Const
alphabet_max As Integer
= 26  'アルファベットの最大文字数//
Dim
input As String         
'入力用の配列 
Dim
output As String        
'出力用の配列
Dim
alphabet_table() As String
= {"a", "b",
"c", "d",
"e", "f",
"g", "h",
"i", "j",
"k", "l",
"m", "n",
"o", "p",
"q", "r",
"s", "t",
"u", "v",
"w", "x",
"y", "z",
" "}
'アルファベットを数字に変換するためのテーブル
Dim
alphabet_trans_table() As String = {"1",
"2", "3",
"4", "5",
"6", "7",
"8", "9",
"10", "11",
"12", "13",
"14", "15",
"16", "17",
"18", "19",
"20", "21",
"22", "23",
"24", "25",
"26", "99"}
'アルファベットの数字の順番に対応する文字のテーブル
Private
Sub Form1_Load(ByVal
sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
End
Sub
Private
Sub TextBox1_TextChanged(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
input = TextBox1.Text
i_max = input.Length()
End
Sub
Private
Sub Button1_Click(ByVal
sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim input_trans(i_max - 1) As
String   '入力用した文字を数字に変換した配列
Dim output_trans(i_max - 1) As
String   '出力用する文字に変換する数字の配列
Dim sort_temp(i_max - 1) As
String     'ソート用の配列
Dim i As Integer      '  ループ用の変数
Dim j As Integer      '  ループ用の変数
Dim k As Integer      '  ソート用の変数
'outputの初期化
output = ""
'textboxに入力したデータをアルファベットの順番の数字に変換
For i = 0 To i_max -
1
For j = 0 To
alphabet_max
If input.Chars(i) = alphabet_table(j) Then
input_trans(i) = alphabet_table(j) : j = alphabet_max
End If
Next
Next
'入力したアルファベットをソート
k =
0
For j = 0 To
alphabet_max
For i = 0 To
i_max - 1
If input_trans(i) = alphabet_table(j) Then
sort_temp(k) = alphabet_trans_table(j) : k = k + 1
End If
Next
Next
'ソートしたデータをtextbox2の出力用のデータに変換
For i = 0 To i_max -
1
For j = 0 To
alphabet_max
If sort_temp(i) =
alphabet_trans_table(j) Then
output_trans(i) = alphabet_table(j) : j = alphabet_max
End If
Next
Next
'出力用の変数に出力する
For i = 0 To i_max -
1
output = output & output_trans(i)
Next
'テキストボックスに出力
TextBox2.Text = output
End
Sub
Private
Sub TextBox2_TextChanged(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles TextBox2.TextChanged
End
Sub
Private
Sub Button2_Click(ByVal
sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
End
End
Sub
End Class
（００１１）
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
_
Partial Class Form1
Inherits
System.Windows.Forms.Form
'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected
Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso
components IsNot Nothing
Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End
Sub
'Windows
フォーム デザイナで必要です。
Private
components As System.ComponentModel.IContainer
'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。
'Windows
フォーム デザイナを使用して変更できます。  
'コード エディタを使って変更しないでください。
<System.Diagnostics.DebuggerStepThrough()> _
Private
Sub InitializeComponent()
Me.TextBox1 = New
System.Windows.Forms.TextBox
Me.TextBox2 = New
System.Windows.Forms.TextBox
Me.Button1 = New
System.Windows.Forms.Button
Me.Button2 = New
System.Windows.Forms.Button
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New
System.Drawing.Point(12, 58)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New
System.Drawing.Size(110, 19)
Me.TextBox1.TabIndex = 0
'
'TextBox2
'
Me.TextBox2.Location = New
System.Drawing.Point(170, 58)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New
System.Drawing.Size(110, 19)
Me.TextBox2.TabIndex = 1
'
'Button1
'
Me.Button1.Location = New
System.Drawing.Point(90, 145)
Me.Button1.Name = "Button1"
Me.Button1.Size = New
System.Drawing.Size(110, 23)
Me.Button1.TabIndex = 2
Me.Button1.Text = "Sort"
Me.Button1.UseVisualStyleBackColor = True
'
'Button2
'
Me.Button2.Location = New
System.Drawing.Point(90, 197)
Me.Button2.Name = "Button2"
Me.Button2.Size = New
System.Drawing.Size(110, 23)
Me.Button2.TabIndex = 4
Me.Button2.Text = "End"
Me.Button2.UseVisualStyleBackColor = True
'
'Form1
'
Me.AutoScaleDimensions = New
System.Drawing.SizeF(6.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New
System.Drawing.Size(292, 266)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.TextBox2)
Me.Controls.Add(Me.TextBox1)
Me.Name = "Form1"
Me.Text
= "Form1"
Me.ResumeLayout(False)
Me.PerformLayout()
End
Sub
Friend
WithEvents TextBox1 As
System.Windows.Forms.TextBox
Friend
WithEvents TextBox2 As
System.Windows.Forms.TextBox
Friend
WithEvents Button1 As
System.Windows.Forms.Button
Friend
WithEvents Button2 As
System.Windows.Forms.Button
End Class