Чтение из текстового файла строк или слов в произвольном порядке - VB
Формулировка задачи:
Доброго Времени суток! Продолжаю писать проект. Есть такое задание:
Пользователю из текстового файла(txt.txt) выдается слово в Label
Пользователь должен ввести его перевод в TextBox и нажать btnNext
Слова должны выдаваться рендомно.
Помогите с реализацией
Решение задачи: «Чтение из текстового файла строк или слов в произвольном порядке»
textual
Листинг программы
Dim Q() As String 'ГЎГ*Г§Г* âîïðîñîâ
Dim R() As String 'ГЎГ*Г§Г* îòâåòîâ
Dim CQ As Integer 'ГЄ-ГўГ® âîïðîñîâ Гў ГЎГ*Г§ГҐ
Dim CR As Integer 'ГЄ-ГўГ® âûäГ*Г*Г*ûõ îòâåòîâ
Dim b_Q() As Boolean 'ïðîçâó÷Г*ГўГёГЁГҐ âîïðîñû
Dim b_R() As Boolean 'âûäГ*Г*Г*ûå ГўГ*ðèГ*Г*ГІГ» îòâåòîâ
Dim nQ As Integer 'ГЎГ*çîâûé Г*îìåð âîïðîñГ*
Dim CV As Integer 'ГЄ-ГўГ® ГЇГ°Г*âèëüГ*ûõ îòâåòîâ
Public mark As Byte ' îöåГ*ГЄГ*
Public kolvo As Byte ' êîëè÷åñòâî âîïðîñîâ
Public family As String ' ГґГ*ìèëèÿ ГіГ·ГҐГ*ГЁГЄГ*
Private Sub btnNext_Click()
kolvo = 2
If CR > 0 Then
If txtAnswer.Text = "" Then
MsgBox "Ââåäèòå îòâåò!"
Exit Sub
Else
CV = CV - (R(0, nQ) = lblQ.Caption)
End If
End If
CR = CR + 1
If CR > kolvo Then 'ïðîéäåГ*
MarkRate
If MsgBox("Ïðîâåðî÷Г*Г*Гї Г°Г*áîòГ* Г*Г*ГЇГЁГ±Г*Г*Г*." & vbLf & "Г‚Г*Гё ðåçóëüòГ*ГІ: " & CV & " ГЇГ°Г*âèëüГ*ûõ îòâåòîâ ГЁГ§ " & kolvo & vbLf & "Г‚Г*ГёГ* îöåГ*ГЄГ* " & mark) Then
MarkRate
frmMain.Text1.Text = frmMain.Text1.Text & "Ó÷åГ*ГЁГЄ " & family & " Гў ðåçóëüòГ*ГІГҐ ïðîâåðî÷Г*îé Г°Г*áîòû ïîëó÷èë îöåГ*ГЄГі " & mark
frmMain.Text1.Text = frmMain.Text1.Text & vbCrLf
Unload frmControl
frmMain.Show
End If
Else
Randomize
Do
nQ = Int(Rnd * CQ) + 1
Loop While b_Q(nQ)
b_Q(nQ) = True
lblQ = Q(nQ)
ReDim b_R(0 To 2)
Do
nR = Int(Rnd * 3)
Loop While b_R(nR)
b_R(nR) = True
txtAnswer.Text = ""
End If
End Sub
Private Sub Form_Load()
family = InputBox("Ââåäèòå ГўГ*ГёГі ГґГ*ìèëèþ", "Ââîä")
frmControl.Caption = "Г’ГҐГ±ГІ ïðîõîäèò ГіГ·ГҐГ*ГЁГЄ " & family
If CQ = 0 Then ' åñëè ГЄ-ГўГ® âîïðîñîâ Гў ГЎГ*Г§ГҐ Г°Г*ГўГ*Г® 0
ReDim Q(0), R(0, 0)
Dim S As String
Open App.Path + "\ControlWork\ControlWork1.RJT" For Input As 1
While Not EOF(1)
Line Input #1, S
S = Trim(S)
If Val(S) > 0 Then
CQ = CQ + 1
ReDim Preserve Q(CQ), R(0, CQ)
Q(CQ) = Mid(S, InStr(1, S, " ") + 1)
CR = 0
ElseIf S > "" Then
R(CR, CQ) = Mid(S, InStr(1, S, " ") + 1)
CR = CR + 1
End If
Wend
Close 1
End If
ReDim b_Q(CQ)
CR = 0
CV = 0
btnNext_Click
End Sub
Public Sub MarkRate()
a = CV / kolvo
Select Case a
Case 0.5 To 0.7
mark = 3
Case 0.7 To 0.9
mark = 4
Case 0.9 To 1
mark = 5
Case Else
mark = 2
End Select
End Sub