Страница: 1 |
Я сделал одну программку ... замена блокнота, всё бы нормально, но !!! Я сделал в ней возможность перекодировки Win=>Dos, Dos=>Win ... а как сделать чтобы программа сама определяла кодировку и сразу сама перекодировала ... ну короче автоопределение кодировки (например как The Bat!) P.S.: Только с примерчиком пожалуйста ...
Вот тебе примерчик, вырезка из статьи, из какой не помню: Определение кодировки текста 'п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ю "о".) не, автоопределения Windows-1251, KOI8-R у меня нет, есть только модуль по перекодировке Вот тебе алгоритмы, почитай полезная штука: http://ivr.webzone.ru/articles/defcod_2/index.htm Если что-нибудь понадобится - пиши, но у меня тока с win - dos пример есть для вб.нет, хотя это и не важно Спасиб всем ..
Страница: 1 |
Вопрос: Работа с кодировкой ...
Добавлено: 04.04.03 23:41
Автор вопроса: Gravity
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
P
ICQ: 346632205
Вопросов: 5
Ответов: 86
Профиль | | #1
Добавлено: 05.04.03 01:19
Номер ответа: 2
Автор ответа:
Gravity
Вопросов: 6
Ответов: 120
Профиль | | #2
Добавлено: 05.04.03 12:46
Спасиб .... Только у меня ещё вопрос, а как на счёт Windows-1251, KOI8-R, и других ... ну тоже автоопределение..
Номер ответа: 3
Автор ответа:
P
ICQ: 346632205
Вопросов: 5
Ответов: 86
Профиль | | #3
Добавлено: 05.04.03 16:50
Номер ответа: 4
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #4
Добавлено: 05.04.03 20:23
Номер ответа: 5
Автор ответа:
Gravity
Вопросов: 6
Ответов: 120
Профиль | | #5
Добавлено: 05.04.03 21:05