Автор | Сообщение |
|
| постоянный участник
|
Пост N: 35
Зарегистрирован: 13.09.07
|
|
Отправлено: 10.12.10 17:42. Заголовок: Вопрос к землякам: как сравнивать украинские фамилии?
Есть необходимость сравнивать правильность ввода фамилии имени и отчества людей. Трудность в том что в DOS-кодировке из-за разных драйверов клавиатур у клиентов украинские буквы различны. Может кто-то с этой задачей уже имел дело и предложит вариант решения?
|
|
|
Ответов - 8
[только новые]
|
|
|
| Администратор
|
Пост N: 1709
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.12.10 17:53. Заголовок: По поводу кодировки...
По поводу кодировки. Думается, сначала надо определить, какая кодировка используется. Для этого надо выбрать несколько фамилий, пока не встретится i в латинской (это будет означать, что используется ms 866), или коды 246-249, тогда это ГОСТ aka 1125 Дальше проверять на отсутствие символов, которых нет в данной кодировке, ну и не забыть про апостроф. А корректность можно проверить разве что отчества - оно должно оканчиваться на іч/ич/на, или быть оглы/сары, или отсутствовать
|
|
|
|
| постоянный участник
|
Пост N: 36
Зарегистрирован: 13.09.07
|
|
Отправлено: 10.12.10 18:17. Заголовок: Pasha пишет: А корр..
Pasha пишет: цитата: | А корректность можно проверить разве что отчества - оно должно оканчиваться на іч/ич/на, или быть оглы/сары, или отсутствовать |
| Паша речь идет только о сравнении буква в букву двух текстовых переменных, которые могут содержать и украинские буквы.
|
|
|
|
| Администратор
|
Пост N: 1710
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.12.10 15:02. Заголовок: Мне непонятен смысл ..
Мне непонятен смысл последнего сообщения, а на неясно сформулированную задачу ответа быть не может. Но все же повторюсь. Украинские фамилии отличаются от русских только тем, что это те же фамилии, только написанные по украински. Украинский алфавит отличается от русского всего несколькими буквами. Надо проверять фамилию на соответсвие множеству букв русского украинского алфавита. Другие символы, а именно буржуйские латинские недопустимы. Какая-то другая проверка правильности ввода фамилии-имени не представляется возможной. Отчество можно проверить по простейшему правилу, которое я описал. Поскольку есть 2 украинских кодировки, надо определить, какая из них используется, и исходя из этого поверять на то первое или второе множество кодов букв украинского алфавита. Смешанное использование кодировок допускать нельзя.
|
|
|
|
| постоянный участник
|
Пост N: 37
Зарегистрирован: 13.09.07
|
|
Отправлено: 11.12.10 17:56. Заголовок: Pasha пишет: Мне не..
Pasha пишет: цитата: | Мне непонятен смысл последнего сообщения, а на неясно сформулированную задачу ответа быть не может. |
| Уточняю задачу: в конторе, в которой я работаю тысячи клиентов, присылающих списки на обработку. В списках коды сотрудников, их фамилии, суммы зачислений и пр. Требуется проконтролировать фамилии так как бывают случаи правильного набора кода, но по ошибке фамилия не того сотрудника, из-за чего(если не проконтролировать) деньги попадут не тому, кому следует. В разных организациях на компах стоят разные драйвера клавиатур( keyrus, rkm и др. ) Кроме того иногда эти списки готовятся в ДОС-кодировке автоматически из разны виндозных программ( 1С, БЭСТ, Парус и др). Хотелось бы для тех кто проверяет эти списки программно, облегчить контроль фамилий. Чтобы было поменьше работы для глаз. Вот и все
|
|
|
|
| постоянный участник
|
Пост N: 465
Зарегистрирован: 27.01.07
|
|
Отправлено: 11.12.10 19:15. Заголовок: Может проще выдавать..
Может проще выдавать отчет после сравнения, содержащий несходняки, и уже его обрабатывать вручную? Все ж меньше работы.
|
|
|
|
| постоянный участник
|
Пост N: 38
Зарегистрирован: 13.09.07
|
|
Отправлено: 11.12.10 20:03. Заголовок: PSP пишет: Может пр..
PSP пишет: цитата: | Может проще выдавать отчет после сравнения, содержащий несходняки, и уже его обрабатывать вручную? Всеж меньше работы. |
| На данный момент у меня есть пункт меню "Контроль по фамилиям" при входе в который в Browse показываются записи отличающиеся от "эталона". Кроме того по нажатию на определенную клавишу, пользователь программы имеет возможность подтвердить тот факт, что мы имеем дело с тем человеком, что нужно. Беда состоит в том, что поскольку сравниваются все символы двух фамилий, то из-за украинских букв получаем большое число тех, кого надо глазами подтвердить.
|
|
|
|
| постоянный участник
|
Пост N: 466
Зарегистрирован: 27.01.07
|
|
Отправлено: 11.12.10 20:19. Заголовок: Ok. Может быть созда..
Ok. Может быть создать некий словарь, который будет накапливать соответствия фамилий. Т.е., одна и та же фамилия может быть написана по-разному. Так вот, в словаре будут представлены все варианты написания, что позволит рано или поздно распознавать соответствие автоматически на основе словаря. А заполнятся словарь будет во время ручной проверки, когда оператор подтверждает соответствие. Со временем количество нераспознаных фамилий должно уменьшаться.
|
|
|
|
| Администратор
|
Пост N: 1711
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.12.10 22:17. Заголовок: Насколько я понял, и..
Насколько я понял, имеется своя таблица с ключем и ФИО по украински, от клиента приходит список с ключем и ФИО, и по ключу надо проконтролировать совпадение ФИО. Тогда лучше в своей таблице сделать дополнительные поля: Fio866. Fio1125. Fio1251, и сгенерировать ФИО во всех кодировках. При приеме списка алгоритмически определять, в какой он кодировке, и затем сравнивать со значением соответствующего поля. Но надо еще учитывать, что в списке от клиента могут быть искажения, связанные с неправильной перекодировкой: скажем, вместо украинской 'i' стоять символ '?'. У меня был такой случай, когда приходилось обрабатывать накладные с искажениями. Я позвонил в фирму, от которой эти списки поступают. Программист мне сказал, что ему эта проблема известна, но софт они получают из Киева, там эту проблему тоже знают, но решить этот простейший сверхсложный вопрос не могут.
|
|
|
|