Определение кодировки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
alexanderz
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 16.01.2005 (Вс) 20:30
Откуда: Россия, Пермь

Определение кодировки

Сообщение alexanderz » 04.04.2005 (Пн) 7:56

Подскажите как определить кодировку текста. Если ответите готовым примером - буду обязан. :wink:
Заранее пасиба.
http://forum.vbland.net/ - новый форум о программировании на Visual Basic

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.04.2005 (Пн) 9:04

- А зачем тебе подпрограмма, перехватывающая прерывания?
- Где? Это? А, это цитата из Лао Цзы в альтернативной кодировке!
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 04.04.2005 (Пн) 10:28

Частотный анализ? Поищи по форуму, вопрос поднимался не раз и не два.
Листинги не горят!

alexanderz
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 16.01.2005 (Вс) 20:30
Откуда: Россия, Пермь

Сообщение alexanderz » 04.04.2005 (Пн) 13:11

Млин. Вот поискать-то я и не могу - инет дорогой. :'(
http://forum.vbland.net/ - новый форум о программировании на Visual Basic

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 04.04.2005 (Пн) 15:25

Берем первую кодировку, переводим, спрашиваем у юзера "Эта??", если нет - берем следующую и т. д.
На это не смотрите! Это не подпись!!!!!!

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 04.04.2005 (Пн) 16:16

Alexander N. Samarin писал(а):Берем первую кодировку, переводим, спрашиваем у юзера "Эта??", если нет - берем следующую и т. д.

Жестоко...
alexanderz писал(а):Млин. Вот поискать-то я и не могу - инет дорогой. :'(

Вкратце суть частотного анализа состоит в следущем: открываем файл в Binary и подсчитываем, сколько байт имеют заданное значение. Для каждой кодировки характерен свой частотный рисунок.
Листинги не горят!

alexanderz
Обычный пользователь
Обычный пользователь
 
Сообщения: 64
Зарегистрирован: 16.01.2005 (Вс) 20:30
Откуда: Россия, Пермь

Сообщение alexanderz » 04.04.2005 (Пн) 17:31

Alexander N. Samarin писал(а):Берем первую кодировку, переводим, спрашиваем у юзера "Эта??", если нет - берем следующую и т. д.


Млин... Так что, до Unicode'a??? Это же порядком 65000 кодировок :lol:
http://forum.vbland.net/ - новый форум о программировании на Visual Basic

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 04.04.2005 (Пн) 17:31

Определение кодировки русского текстра.
Определение кодировки текста

Код: Выделить всё

'п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ю "о".)
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 99

    TopList  
cron