Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Есть ли надежный метод отличить строку OEM от ANSI? [D7, WinXP]


Aleksandr. ©   (2004-07-12 16:52:00) 

Две версии программы пишут в разных кодировках - одна в OEM, а вторая - в ANSI. Теперь их данные надо объединить одним обработчиком, но никак не могу сообразить, как по содержимым строки определить, надо ее в ANSI конвертировать или нет.


Anatoly Podgoretsky   (2004-07-12 19:33:00) [1]

Jeer ©   (12.07.04 17:49) [12]
Да разве к статистике есть претензии, претензии есть к постановке вопроса " надежный"

Aleksandr.   (12.07.04 18:09) [14]
Раз ты щавел речь про 1251, то тогда не стоит вести речь про OEM/ANSI, а вести речь об конкретных кодировках. OEM/ANSI это другое. Кроме того у тебя сильно ограниченый набор 1251, например у меня в текстах часто встречаются ©®™¤Ё№¬…€‘’“”•¦§«°±ё» и такие же коды в 866, кроме того иногда используются и другие символы.


Aleksandr.   (2004-07-12 18:09:00) [2]

Ну, например: ОЕМ-строка, сколько я их ни просматриваю, на трассировке, в содержимом имеет знаки мягкого переноса, параграфы, подчеркивания, копирайты, национальные сиволы:
'€¢áâà «¨©áª¨© ¤®«« à 1'
Естессно, в русском тексте просто нет этих символов, а меня конвертация волнует только с русского OEM. Соответственно, при прогоне строки на сравнение с таким вот набором в 1251:
'0'..'9','A'..'Z','a'..'z','А'..'Я','а'..'я',' ',',','.','!',':','?',';','''','"','@','¹','%','*','(',')','[',']','','/','\','$','#','-',#9
можно быть достаточно уверенным, что любой знак, не попавший в него, является признаком OEM-содержимого строки. Я это дело сейчас опробовал, из трехсот тысяч строчек он ни разу не ошибся с определением: заведомо зная, что помимо этого набора, также не должны встречаться переносы строк - в каждой из OEM-строк оказался символ, не входящий в этот набор. Естессно, в список не включаю примерно 20% строк, которые оказались на английском - их конвертация мне и не нужна.


Reindeer Moss Eater   (2004-07-12 17:56:00) [3]

Проще сравнивать с сетом используемых символов,

Чем проще-то?
У тебя в тексте есть всего лишь байт, а не символ. Символом он станет кода будет ясна кодировка.
А сравнивать ты собрался с символом.


Jeer   (2004-07-12 17:49:00) [4]

Anatoly Podgoretsky ©   (12.07.04 17:34) [9]

Мы вообще живем в статистическом мире.:)


Aleksandr.   (2004-07-12 17:48:00) [5]

Понятно... Проще сравнивать с сетом используемых символов, куда нормальные русские люди не вбивают всякие там знаки параграфа и решетки...


Reindeer Moss Eater   (2004-07-12 17:37:00) [6]

В общем легче и дешевле показать юзеру фрагмент текста с перекодировкой и без и предложить выбрать самому.

Что то типа надписи на спине байкера:
"Если вы читаете это, значит моя подруга упала с мотоцикла"


Anatoly Podgoretsky   (2004-07-12 17:34:00) [7]

Статистические методы не относятся к надежным.


Reindeer Moss Eater   (2004-07-12 17:33:00) [8]

Только если это "оро" написано кириллицей.


Jeer   (2004-07-12 17:32:00) [9]

Reindeer Moss Eater ©   (12.07.04 17:28) [5]
>Статистика встречаемости слов в языке документа.

..символов..


Алхимик   (2004-07-12 17:31:00) [10]

Смотри информацию про так называемую "марковость".
Вероятность встретить "оро" достаточно высока, а "щщщ" стремится к нулю и т.д.
http://www.yandex.ru/yandsearch?rpt=rad&text=%EC%E0%F0%EA%EE%E2%EE%F1%F2%FC


Reindeer Moss Eater   (2004-07-12 17:28:00) [11]

Статистика встречаемости слов в языке документа.


Aleksandr.   (2004-07-12 17:25:00) [12]

Статистика чего? Я понимаю, что можно попробовать что-то сравнить и подсчитать, но что?


Reindeer Moss Eater   (2004-07-12 17:12:00) [13]

статистика.


Aleksandr.   (2004-07-12 17:02:00) [14]

Ну, заведомых нету, а статанализ - это что?


Reindeer Moss Eater   (2004-07-12 16:54:00) [15]

Статанализ либо поиск заведомо имеющихся слов/фраз в тексте.


Наверх

Титульная страница Поиск, карта сайта Написать письмо