Показать сообщение отдельно
Старый 08.08.2005, 14:00   #4  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
Мысль несколько запутанная... Но в чем-то верная.

В кодировке DOS большие буквы идут от 0x80h до 0x9Fh, а маленькие - с 0xA0h по 0xAFh и с 0xE0h по 0xEFh, плюс буква Ё - 0xF0h и ё - 0xF1h
В кодировке WIN всё проще - 0xC0h - 0xDFh -большие и сразу за ними 0xE0h - 0xFFh - маленькие, плюс "Ёё" 0xA8, 0xB8.

То есть, если ASCII код знака попадает в интервал [0xC0h - 0xDFh] - это 100% WIN (в досовской кодировке там - псевдографика), если код больше 0xF1h - тоже WIN

Аналогично, если ASCII код от 0x80h до 0xAFh - это ~99% DOS. Ну... Надо еще исключить отсюда букву Ё 0xA8h.

Вариантов несколько - Анализировать посимвольно строку и иметь три "столбика" - в один сложим DOS, в другую - WIN, в третью - всё остальное. В конце смотрим, кого больше - DOS или WIN. По идее, должно получаться практический всё.

Насчет варианта с апкейсом, предложенным выше, пока не понял, что получится... Думаю.