タイピングデータ作成
|
今回から、タイピングのプログラム作成に入っていきたいと思います。まず最初は、タイピングデータの作成です。タイピングデータはある程度数が必要ですので、データを手入力で入れるのは大変なため、インターネットを活用してデータを取り込みたいと思います。 |
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2003/7/8 ユーザー名 : のり
'
'
'***************** 初期設定 ****************
Dim buf As String 'バッファエリア
Dim buf2 As String 'チェック用スイッチ
Dim loop_sw As Integer 'ループスイッチ
'***************** ファイル名取得 *****************
Range("b2").Select
buf = ActiveCell.FormulaR1C1
ActiveCell.Offset(1, 0).Activate
loop_sw = 0
'****************** データチェック ****************
Do While loop_sw = 0
buf2 = ActiveCell.FormulaR1C1
If buf = "" Then
loop_sw = 1
Else
If buf = buf2 Then
Selection.ClearContents
End If
buf = buf2
ActiveCell.Offset(1, 0).Activate
End If
Loop
End Sub
|
データになる情報ですが、テキストデータやホームページのテキストなどを取り込みました。それを一旦エクセルに落として、重複データがないかどうかをチェックします。
エクセルのマクロの機能を使って簡単な重複データチェックをしました。
このマクロはB列に入っているデータを比べて、同じ内容の場合には、2件目のデータを消すという、簡単なマクロです。
これをデータがなくなるまで繰り返しているだけのものです。
あらかじめ並べ替えの処理をした上で、このマクロを実行し、もう一度並べ替えの処理を行ってデータを作りました。
今回はデータを消すだけだったので、マクロ実行後にもう一度並べ替えを行っているのですが、行削除を行うようにすれば、マクロ実行後の並べ替えをしなくても済むので、手間を少なくしたい場合には、行削除を行ってください。
|
以前にタイピングデータを登録するテーブルを作ったのですが、今回項目を追加しています。
変数名 |
データ型 |
内容 |
id |
int unsigned |
id |
type_data |
varchar(255) |
タイピングデータ |
type_kana |
varchar(255) |
タイピングデータかな |
word_cnt |
smallint unsigned |
タイピングデータの文字数 |
level |
tinyint unsigned |
レベル |
まず、かな表示が出来るように、かな用の項目を追加しました。すべてのデータにかなを入れるつもりはないのですが、漢字を読めない生徒が多く難しい漢字などについては、かなを入れて行こうと思って追加しました。
もうひとつ追加した項目はレベルです。これは、文字数に応じてレベルを設定することで、実力に応じた内容を出せるようにしようと思って追加しました。当初は文字数で判断しようと思っていたのですが、項目を追加することにしました。今回は5文字単位でレベルをアップしています。5文字まではレベル10文字まではレベル2と言うように入れています。
このレベルについては、エクセルの関数を使って登録しました。
単純に5で割って1を足しているだけです。小数点以下は切り捨てにして整数値にしています。この他にも
「INT」関数を使っても同じような結果が出せます。
文字数も関数を使って登録しています。
LEN関数を使うことで文字数を得ることが出来るので、エクセルの関数である程度入力の手間を省くことが出来ました。
IDについても関数を利用して登録しています。
しかし、IDについては自動的に値が入るので、データ自体は特に必要ないと思うのですが、とりあえず登録しました。(^_^;)
ROW関数は、現在の行番号を返すのですが、この値から1を引いた値を結果として出しています。これは、1行目に項目名を入れているためで、1行目からデータを入れているときにはROW関数のみでかまいません。
オートフィルの機能を使っても入力できるのですが、並べ替えなどをしたときにも自動的に1から並べたい場合には、ROW関数を利用する方が良いと思います。 |
今回は約2万件程度のデータを作りました。このデータをMySQLに登録していきたいと思います。登録するために、まず最初にエクセルで作ったデータをテキストデータに変換したいと思います。
これは「名前を付けて保存」でファイルの種類にテキストを選択して保存すればOKです。
次に、コマンドプロンプトからMySQLを実行し、データをロードします。
load data local infile 'd:\data.txt' into table type_table |
上記のコマンドを実行してデータをロードします。今回はDドライブにある、data.txtをロードしました。
|
今回はJAVAとはまったく関係ない所をやってしまいました。(^_^;)
データの登録にはいろいろな方法があるので、今回はそのうちのひとつを紹介してみました。
今回のデータはそのまま授業でも使って行こうと思っています。
ある程度の数をそろえることが出来たと思っているのですが、データ的には長文のデータが少なく、今後も追加は必要だと考えています。
2万4千件程度のデータを集めることが出来たのですが、そのうちの2万2千件はレベル1で5文字以内のデータなので、ちょっとデータが偏りすぎかなあと思っております。しかしとりあえず実際の運用でも十分なデータにはなっていると思うので、長文のデータの追加と言うのは、ある程度開発が落ち着いてからと考えています。 |
ログイン処理その2 UP タイピングプログラム作成1 |
  |