N-BOX
TOP
新着情報
フォトギャラリー
デジモノ
おべんきょう
はまりもの
ひとりごと
カメラ
パソコン
掲示板
プロフィール
リンク
メール
afer_88_31.gif
リンクシェア アフィリエイト紹介プログラム
PSX_120_60
デル5_120x60
富士通ショッピングサイト WEB MART

タイピングデータ作成

 今回から、タイピングのプログラム作成に入っていきたいと思います。まず最初は、タイピングデータの作成です。タイピングデータはある程度数が必要ですので、データを手入力で入れるのは大変なため、インターネットを活用してデータを取り込みたいと思います。
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と言うように入れています。
このレベルについては、エクセルの関数を使って登録しました。
=ROUNDDOWN(D2/5+1,0)
単純に5で割って1を足しているだけです。小数点以下は切り捨てにして整数値にしています。この他にも
「INT」関数を使っても同じような結果が出せます。
文字数も関数を使って登録しています。
=LEN(B2)
LEN関数を使うことで文字数を得ることが出来るので、エクセルの関数である程度入力の手間を省くことが出来ました。
IDについても関数を利用して登録しています。
しかし、IDについては自動的に値が入るので、データ自体は特に必要ないと思うのですが、とりあえず登録しました。(^_^;)
=ROW()-1
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
夏のボーナスキャンペーン 468×60