Есть часть кода тестовой программы, он читает из блокнота вопросы с ответами , запихивает их в форму куда надо, проверяет (вообшем поймёте), так вот: КАК СДЕЛАТЬ ТАК ЧТОБ ОН ДЕЛАЛ ТОЖЕ САМОЕ, НО ТОЛЬКО ОТВЕТ НУЖНО БЫЛО ВПИСЫВАТЬ САМОМУ В ТЕХТ, А ПРОГРАММА СВЕРЯЛА ОТВЕТ НАПИСАННЫЙ И ОТВЕТ В ФАЙЛЕ...Я идиот! Убейте меня, кто-нибудь!
Private Sub LoadQuestion(ByVal QNumber As Long)
'Загрузить вопрос номер QNumber
Dim C As Long, I As Long, Z As String, FN As Integer
Dim Q As String, A As String
Const sQS As String = " -> " 'Строка, разделяющая вопрос и ответы
Const sAS As String = ";" 'Разделитель ответов
Const sRA As String = "(+)" 'Строка, отмечающая правильный ответ
FN = FreeFile
If filename = "" Then
MsgBox "Вы не указали файл"
End
Else
Open filename For Input As #FN 'Открыть файл для чтения
C = 0 'Сбросить счетчик строк
Do Until EOF(FN)
Line Input #FN, Z 'Считать строку
C = C + 1 'Увеличить счетчик на 1
If QNumber = C Then Exit Do 'Если нужная строка - то выход
Z = ""
Loop
Close #FN
If Len(Z) = 0 Then 'Если нужного номера вопроса не найдено
lblQuestion.Caption = "(не доступно)"
lblQuestion.Tag = ""
For I = optAnswers.LBound To optAnswers.UBound
optAnswers(I).Caption = "(не доступно)"
Next I
Exit Sub
End If
End If
Q = Left$(Z, InStr(Z, sQS) - 1) 'Здесь будет текст вопроса
A = Mid$(Z, InStr(Z, sQS) + Len(sQS)) 'А здесь - ответы
lblQuestion.Caption = Q 'Вывести в лейбл вопрос
lblQuestion.Tag = "" 'А здесь потом будет номер правильного ответа
Q = "1234" 'Подготовить последовательность ответов для перемешивания
For I = 1 To 4
Randomize Timer
QNumber = 1 + Fix(Rnd * Len(Q)) 'Выбрать, на какой номер будет записан текущий ответ
Z = Split(A, sAS)(I - 1) 'Выделить строку с текущим ответом
If Left$(Z, Len(sRA)) = sRA Then 'Если строка отмечана, то
Z = Mid$(Z, Len(sRA) + 1) 'Убрать отметку
lblQuestion.Tag = Mid$(Q, QNumber, 1) 'И записать номер правильного ответа
End If
optAnswers(Val(Mid$(Q, QNumber, 1)) - 1).Caption = Z 'Вписать текст ответа
Q = Left$(Q, QNumber - 1) & Mid$(Q, QNumber + 1) 'Удалить использованный номер
Next I
End Sub
Private Sub CheckAnswer()
'Проверка ответа
Dim I, Q As Long
Q = Val(lblQuestion.Tag) 'Номер правильного ответа
For I = 0 To 3
If optAnswers(I).Value Then Exit For 'Найти выделенный опшнбуттон, в I его индекс
Next I
If I + 1 = Q Then 'Если правильно
Counter = Counter + 1 'Увеличить счетчик
shPokazatel(X).FillColor = &HFF00&
lblpokaz1.Caption = "Правельных ответов " & Counter
X = X + 1
Else
nepravelno
End If
End Sub