Страница: 1 |
Вопрос: Работа с кодировкой ... | Добавлено: 04.04.03 23:41 |
Автор вопроса: ![]() |
Я сделал одну программку ... замена блокнота, всё бы нормально, но !!! Я сделал в ней возможность перекодировки Win=>Dos, Dos=>Win ... а как сделать чтобы программа сама определяла кодировку и сразу сама перекодировала ... ну короче автоопределение кодировки (например как The Bat!) P.S.: Только с примерчиком пожалуйста ... |
Ответы | Всего ответов: 5 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 346632205 Вопросов: 5 Ответов: 86 |
Профиль | Цитата | #1 | Добавлено: 05.04.03 01:19 |
Вот тебе примерчик, вырезка из статьи, из какой не помню:
Определение кодировки текста 'пpовеpяем тип кодиpовки ANSI или ASCII 'беpем пеpвые 1000 байт еcли это возможно. Hевозможно - меньше. l& = Len(rtbView.Text) If l& > 1000 Then l& = 1000 'копиpyем yчаcток текcта из RichTextBox в пеpеменнyю, иначе тоpмоз обеcпечен s$ = Left$(rtbView.Text, l& 'обнyляем флажки fdo% = 0 fwo% = 0 'пpоcматpиваем кycок текcта For n% = 1 To l& 'вытаcкиваем очеpедной cимвол c$ = Mid$(s$, n%, 1) 'еcли это pyccкая "о" в DOS кодиpовке то инкpементиpyем cчетчик If c$ = Chr$(174) Then fdo% = fdo% + 1 'еcли это pyccкая "о" в Win кодиpовке то инкpементиpyем cчетчик If c$ = Chr$(238) Then fwo% = fwo% + 1 Next 'ycтанавливаем в конфиге тип пpоcмотpа по дефолтy If fdo% > fwo% Then 'это явно ДОC-текcт Else 'это явно Win-текcт
Я пpобовал c деcяток текcтов. Ошибcя он на одном файле (напиcал что Win-кодиpовка, хотя это ДОC) - autoexec.bat. Да и то в нем pyccкого ничего небыло. Да на больших файлах опpеделение безошибочно, даже еcли там кyча пcевдогpафики. Hа маленьких (меньше 50 байт) возможны глюки, еcли бyква "о" не вcтpечаетcя, или вcтpечаетcя меньше чем "ю". Т.е. еcли файл cоcтоит из текcта: "Хэппи бёздей тy ю" то он выдаcт что это Win кодиpовка ("о" нет, а "ю" он пpимет за Выневcкyю "о".) |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 6 Ответов: 120 |
Профиль | Цитата | #2 | Добавлено: 05.04.03 12:46 |
Спасиб .... Только у меня ещё вопрос, а как на счёт Windows-1251, KOI8-R, и других ... ну тоже автоопределение..![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 346632205 Вопросов: 5 Ответов: 86 |
Профиль | Цитата | #3 | Добавлено: 05.04.03 16:50 |
не, автоопределения Windows-1251, KOI8-R у меня нет, есть только модуль по перекодировке |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 554200 Вопросов: 101 Ответов: 343 |
Профиль | Цитата | #4 | Добавлено: 05.04.03 20:23 |
Вот тебе алгоритмы, почитай полезная штука: http://ivr.webzone.ru/articles/defcod_2/index.htm Если что-нибудь понадобится - пиши, но у меня тока с win - dos пример есть для вб.нет, хотя это и не важно |
Номер ответа: 5 Автор ответа: ![]() ![]() Вопросов: 6 Ответов: 120 |
Профиль | Цитата | #5 | Добавлено: 05.04.03 21:05 |
Спасиб всем .. |
Страница: 1 |
|