Страница: 1 |
Help! Прога (вариант искуственного интеллекта) читает файл, в файле содержатся строки типа: По идее прога, найдя совпадение ("ИМЯ" = "ИМЯ"), должна кидать ответ (фразы ниже символа "!"). Вот фрагмент кода (файл открыт, переменные обьявлены, идет чтение): Выполняю прогу по строке, в 14-й строке (If strKus = strRead Then) strKus = "ИМЯ", strRead = "ИМЯ", а условие не выполняется. Почему?
Кинь весь проект на мэйл помогу. phoenix_group@mail.ru Ну как так???? Вот полностью: Dim answ(20) As String 'варианты ответов - максимум 20 Open App.Path & "\" & SobName For Input As #5 ' эти строки я подставил для проверки txtText = "" [sensored] в том, что длинные фразы он обрабатывает (когда несколько слов ввожу), а короткие - нет? Есть идеи? a ty uveren chto iba = IMYA? a to u mya vse rabotaet... a ty uveren chto iba = IMYA? a to u mya vse rabotaet... Страница: 1 |
Вопрос: Где косяк?
Добавлено: 21.08.03 08:11
Автор вопроса: Calhoon | Web-сайт:
ФАМИЛИЯ
ИМЯ
!
Как-как?
Мое что-ли?
.
Do While EOF(5) = False
Line Input #5, strRead
If strRead = "" Then GoTo mLoop
If strRead = "!" Then 'если символ - !, проскакиваем ответы
Do Until strRead = "."
Line Input #5, strRead
Loop
End If
If strRead = "." Then GoTo mLoop
'найдено слово
For n = 1 To (Len(txtText) - Len(strRead)) + 1
Dim strKus As String
strKus = UCase(Mid(txtText, n, Len(strRead)))
If strKus = strRead Then 'совпадение
Do Until strRead = "!" 'проскакиваем варианты, ищем ответы
Line Input #5, strRead
Loop
Dim a As Integer
a = 0
answNxt:
a = a + 1
Line Input #5, strRead
If strRead <> "." Then 'найден ответ
answ(a) = strRead
GoTo answNxt
End If
'больше ответов нет, показываем один из них
Randomize Timer
txtAll = txtAll + Chr(13) + Chr(10) + lblSobName + ": " + answ(Int((a - 1) * Rnd + 1)): GoTo mClose
End If
Next n
mLoop:
Loop
'нет совпадения - нечего ответить
Randomize Timer
txtAll = txtAll + Chr(13) + Chr(10) + lblSobName + ": " + strDknow(Int(5 * Rnd + 1))
mClose:
Close #5
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
E-Man
Вопросов: 3
Ответов: 132
Профиль | | #1
Добавлено: 21.08.03 21:07
Номер ответа: 2
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #2
Добавлено: 21.08.03 21:23
u menya vse rabotaet!
Номер ответа: 3
Автор ответа:
Calhoon
ICQ: 789764
Вопросов: 90
Ответов: 230
Web-сайт:
Профиль | | #3
Добавлено: 26.08.03 05:06
For n = 1 To 11 'первые одиннадцать строк пропускаем (SobName, приветствия и не знания)
Line Input #5, strRead
Next n
Do While EOF(5) = False
Line Input #5, strRead
If strRead = "" Then GoTo mLoop
If strRead = "!" Then 'если символ - !, проскакиваем ответы
Do Until strRead = "."
Line Input #5, strRead
Loop
End If
If strRead = "." Then GoTo mLoop
'найдено слово
For n = 1 To (Len(txtText) - Len(strRead)) + 1
Dim strKus As String
strKus = UCase(Mid(txtText, n, Len(strRead)))
txtAll = txtAll + Chr(13) + Chr(10) + strKus + "<->" + strRead
txtAll = txtAll + "->" + strKus = strRead
' ----------------------------------------------------------
If strKus = strRead Then 'совпадение
Do Until strRead = "!" 'проскакиваем варианты, ищем ответы
Line Input #5, strRead
Loop
Dim a As Integer
a = 0
answNxt:
a = a + 1
Line Input #5, strRead
If strRead <> "." Then answ = strRead: GoTo answNxt 'найден ответ
'больше ответов нет, показываем один из них
Randomize Timer
txtAll = txtAll + Chr(13) + Chr(10) + lblSobName + ": " + answ(Int((a - 1) * Rnd + 1)): GoTo mClose
End If
Next n
mLoop:
Loop
'нет совпадения - нечего ответить
Randomize Timer
txtAll = txtAll + Chr(13) + Chr(10) + lblSobName + ": " + strDknow(Int(5 * Rnd + 1))
mClose:
Close #5
txtText.SetFocus
End Sub
Номер ответа: 4
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #4
Добавлено: 26.08.03 05:25
Номер ответа: 5
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #5
Добавлено: 26.08.03 05:25