![]() |
|
![]() ![]() ![]() |
|
mobi_vic |
|
|||
![]() iPhone developer Профиль Группа: Участник Сообщений: 29 Регистрация: 6.6.2007 Где: Kiev Репутация: нет Всего: нет |
Здравствуйте!
Нужно написать программу которая будет определять язык текста который бет подгружаться из файла! Уже есть один алгоритм но он мне кажеться не очень подходящим, суть его заключаеться в следующем: Сoздаеться например 2-строки (на 2 языка) в каждую мы заносим те символы согласно которым мы можем на 100% определить какой это язык, например для английского мы туда запишем "qwrtyuisdfghjklzxvbnm". Далее просто будем сверять, например с помощью функии Pos() будем искать наш символ в определленой строке. Но есть и минус скажем если взять два языка (русский и украинский) возникает проблема, у них очень много одинаковых букв, а те с помошью которых можно различить, очень мало, поэтому программа получаеться в большинстве счлучев не может определить язык. Вопрос состоит в следующем: можно ли как то определить толи этот текст пренадлжит русскому толи украинскому толи английскому, что б не привязываться к проверке символов, скажем как то получить код символа и определить к каому языку он пренадлежит. Расмотрю и другие варианты решения даной задачи. Заранее благодарен ![]() |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Ну, бери слова, наиболее распространённые в украинском, а как ещё-то в данном случае. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
В какой кодировке будет файл ? ANSI, Utf-8, Unicode-16 ? Если не знаешь, то придётся ещё определять кодировку ...
Это сообщение отредактировал(а) borisbn - 24.4.2010, 12:48 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
mobi_vic |
|
|||
![]() iPhone developer Профиль Группа: Участник Сообщений: 29 Регистрация: 6.6.2007 Где: Kiev Репутация: нет Всего: нет |
Мне сейчас без разницы с какой кодировкой скажем взять ту с которой попроще будет работать. Я обратил внимание на то как в ворде, есть такая вещь как определение языка, вот интерестно какой ее принцип работы. Ибо там можно со старта выставить язык, или он сам будет определять. Есть такой вопрос к символу как то подвязываеться его происхождение, или только код? Скажем в русском и украинском буква "А" имеет одинаковые данные? Или они разные? |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
проще ( в данном контексте ) работать с unicode. см. эту ссылку а также http://novikovmaxim.narod.ru/index.htm?htt...elp/webuni1.htm а ещё лучше http://www.google.ru/search?client=opera&a...-8&oe=utf-8 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
mobi_vic |
|
|||
![]() iPhone developer Профиль Группа: Участник Сообщений: 29 Регистрация: 6.6.2007 Где: Kiev Репутация: нет Всего: нет |
Если я все понял правильно, мне нужно получить код символа и посмотреть в какой дипазон он попадает?
Вопрос, как его получить, у меня только получалось когда с клавиатурі вводили и все :( |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 18 Всего: 135 |
В С/С++ "символ" и "значение символа" - одно и то же. Если у тебя в переменной есть "символ", значит значение этой переменной равно "значению символа".
А как читать симолы из файла - см. MSDN -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
mobi_vic |
|
|||
![]() iPhone developer Профиль Группа: Участник Сообщений: 29 Регистрация: 6.6.2007 Где: Kiev Репутация: нет Всего: нет |
С кодом разобрался получилось следующее:
char a='Ы'; int b=a; Form1->Edit2->Text=b; Только вот результат получается отрицательным :( его надо еще как то переводить? Это сообщение отредактировал(а) mobi_vic - 24.4.2010, 17:21 |
|||
|
||||
KOHCEPBATOP |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 21.4.2010 Репутация: нет Всего: 1 |
char по умолчанию является знаковым, поэтому все русские буквы будут отрицательными. Или работай так, или используй unsigned char: unsigned char a='Ы'; Но тогда нужно учитывать, что a != 'Ы', но a == (unsigned char)'Ы'. Можно в проекте указать, что char по умолчанию - беззнаковый, но ИМХО лучше этого не делать. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
![]() См. http://www.statsoft.ru/home/portal/exchange/textanalysis.htm |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |