
No.3ベストアンサー
- 回答日時:
では簡単な例を説明してみます。
フォームのkeypressのイベントでどのキーが押されたかは分かります。
押された回数をカウントすれば基本的にタイプ数は分かります。
"例えば"は(tatoeba)で問題ないのですが"ふ"の場合(hu/fu)でもいいですし"だった"は(datta/daltuta/daxtuta)でもいいのですよね。これがローマ字入力の判定の難しさだと思います。
"例えば"のチェックルーチン(めっちゃいい加減版)エンターキーは不要と判断しました。
なお、bが文字を打った回数。cが文字数という事で参考にして下さい。
Dim wk(5) As String
Dim a As Integer
Dim b As Integer
Dim c As Integer
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim chk As String
chk = LCase(Chr(KeyAscii))
If Mid(wk(0), a, 1) = chk Then
a = a + 1
End If
b = b + 1
If a > c Then
MsgBox "ok"
End If
End Sub
Private Sub Form_Load()
wk(0) = "tatoeba"
a = 1
b = 0
c = Len(wk(0))
End Sub
さっそくありがとうございます。
しかもプログラム付で・・・。
プログラムはある程度は理解しているものの
初めてみる関数ばかりで、苦戦中です。
しばらくこの参考プログラムを先生に聞いて理解してみます。
また、新たに質問させてもらうと思いますが
その時はよろしくお願いします。
No.2
- 回答日時:
質問の意味をいまいち理解してませんが・・・
判定を行うタイミングが、このソフトの鍵となると思います。
複数行あろうとなかろうと一緒です。
複数行ある文章もようは改行コード(定数:vbCrlf)を含んだ一行と置き換えることができます。
簡単な比較ロジックは
1.テキストボックスのChangeイベントを認識
2.入力文字と入力文字数を得る
3.正解例の頭からその文字数文を得る
4.それらを比較
です。
しかし、文章の入力を終えてからの判定は並大抵ではありません。
一度判定ロジックを組んだ経験があるのですが、結局かなりの駄作になってしまいました。
例えば、余計な文字が1文字入ったら、どうするのかというだけで様々なパターンが想像つきます。
それ以外に2行目と3行目が入れ違いになっていた場合にも、複数の処理に分かれます。
これらを全て兼ね備えたプログラムは、人工知能開発ぐらいのレベルになると思います。。。
ですので、あまり入力し終えてからの判定はお奨めできません。
一度、市販されてるタイピングソフトではなく、フリーでダウンロードできるタイピングのソフトを見て研究してみては?
はずしてたなら、ごめんなさい。
参考URL:http://www.vector.co.jp/vpack/pickup/win/edu/com …
回答ありがとうございます。
私たちが作成しようとしているソフトは下記のyanmaaさんのお礼に記した通りです。
判定のタイミングとしてはローマ字、1文字ずつ判定させるつもりでいます。
表示は1行をローマ字で表示させて、先頭から順にタイピングです。
一致していればその文字が消え、次の文字のタイプという感じです。
その際、1行終わるまでにタイプした数と誤った入力をカウントさせたいのです。
とりあえず、教えていただいたURLでDLしてみて研究してみます。
また、よろしくお願いします。
No.1
- 回答日時:
プログラムを作るのが卒業研究なら基本的なプログラミング技能を有していると判断します。
例えば
そこで
みなさんに
お聞き
したいのですが
というタイピングを出題するとして
どのようにキータイプさせ、どのような判定を下すのでしょうか?
OKなら次の行、違うなら元の行ですね。
後は自分で考えて何処までやって何処が分からないのか説明してからにしてね。
回答をありがとうございます。
yanmaaさんの言われるプログラム技能は有しています。
私たちが作っているタイピングプログラムは
例えば
そこで
みなさんに
お聞き
したいのですが
の5行で例えると
1.『例えば』を日本語表示とローマ字表示する。
例 例えば
tatoeba
2.「t」からタイプ開始 → Enterキーを押すと1行終了
その際、先頭の文字とキーボードからタイピングした文字が同じなら同時にローマ字を一文字ずつ消していく。
なおかつ、Enterキーを押すまでに「タイプした数」と「誤った数」をカウントする。
3.これを5回繰り返す。
というのを考えています。
こういうプログラムをVBで作成するのは可能でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA/ Formatで文字列が...
-
Access VBAで、数字だけをチェ...
-
正整数の半角数字かどうか判定する
-
入力チェック
-
メルアドをチェックする正規表現?
-
VB.NET2003 テキストボックスに...
-
VBAによる第3、4水準文字の判定...
-
「終了していない文字列型の定...
-
JSPの処理の途中で、JavaScript...
-
以下のコードを実行しても、オ...
-
innerHTMLなどの反映タイミング
-
PowerPointで時計表示
-
javascriptでフォルダ内のファ...
-
VBA SORT Applyでエラー
-
あるurlが存在する(?)かどう...
-
XMLHttpRequestオブジェクトに...
-
プルダウンリストを作りMySQLか...
-
既存のwebサイトで、ローカルの...
-
至急お願いします!javascript:...
-
jQuery ui Datepicker 明日以降...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAによる第3、4水準文字の判定...
-
エクセルVBA/ Formatで文字列が...
-
正整数の半角数字かどうか判定する
-
VB.NET2003 テキストボックスに...
-
「終了していない文字列型の定...
-
文字認証の問題
-
エクセル 半角英数6文字以上 ...
-
助けてください!出来ないと解...
-
入力チェック
-
VBを使ってのタイピングについて
-
Visual Basic 6.0 のテキストボ...
-
入力された文字を1文字ずつチ...
-
文字列の検索
-
javascript 文字列の最後から1...
-
メルアドをチェックする正規表現?
-
脳内メーカーや自己紹介工場
-
入力文字を瞬時に変える
-
AccessVBAで教えて下さい。
-
replaceで正規表現を利用したい
-
正規表現
おすすめ情報