Как правильно проверять количество ошибок в тексте?...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Как правильно проверять количество ошибок в тексте?...

Сообщение BV » 02.07.2005 (Сб) 19:40

Вот мой код для проверки:

Код: Выделить всё
Dim i As Long, lErrCount As Long
Dim strExample As String, strResult As String
For i = 1 To Len(txtText.Text)
    strExample = Mid$(txtExample.Text, i, 1)
    strResult = Mid$(txtText.Text, i, 1)
    If strExample <> strResult Then lErrCount = lErrCount + 1
Next i


Но если в тексте просто пропущен один или несколько символов, то получится, что весь последующий текст – одна большая ошибка.
Я уже достаточно много вариантов перепробовал – результат не тот. Подскажите, как мне обойти эту ситуацию, и корректно проверять текст на количество ошибок (разумеется, если код простой)?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 03.07.2005 (Вс) 1:29

Ничего не понятно. Что с чем ты сравниваешь, и что такое для тебя ошибка?

Если я угадал, то ты пытаешься сделать аналог Code Compare из VSS. Но там сравнение идет с точностью до строки, а не до символа. А вообще, посмотри, как работает утилита fc - глядишь, тебя и осенит :).

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 03.07.2005 (Вс) 13:19

2 Ennor

Ты помнишь мою программу "Скорость"?
Всё для неё.

Т.е. я сравниваю образец с тем, что написал пользователь, и показываю кол-во ошибок. НО, если пропущена буква, то как я не изменял код - всё равно весь следующий текст будет посимвольно считаться с ошибками, хотя по правилам была допущена лишь одна ошибка!
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67

    TopList