Как распознать кодировку текстового файла

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как распознать кодировку текстового файла

Сообщение SergeySmlInf » 17.06.2009 13:12:54

Существует такая проблема:
Данные для программы могут быть приготовлены в любом текстовом редакторе и сохранены в текстовом файле.
Как можно при открытии файла определить какая кодировка была использована в нем?
SergeySmlInf
новенький
 
Сообщения: 40
Зарегистрирован: 02.10.2007 07:59:26
Откуда: Смоленск

Re: Как распознать кодировку текстового файла

Сообщение Mr.Smart » 17.06.2009 13:59:59

Есть алгоритм основанный на частоте появленя определённых букв. Опледеление работает практически на 100%.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Как распознать кодировку текстового файла

Сообщение SergeySmlInf » 17.06.2009 18:45:58

Спасибо!
Разбираюсь...
SergeySmlInf
новенький
 
Сообщения: 40
Зарегистрирован: 02.10.2007 07:59:26
Откуда: Смоленск

Re: Как распознать кодировку текстового файла

Сообщение SergeySmlInf » 01.07.2009 21:07:37

Вообщем, помогло мало...
Решил задачу по другому:
Читаю текст, загружаю строку в TEdit
если в Edit1.text пусто считаю, что кодировка не UTF8
SergeySmlInf
новенький
 
Сообщения: 40
Зарегистрирован: 02.10.2007 07:59:26
Откуда: Смоленск

Re: Как распознать кодировку текстового файла

Сообщение Mr.Smart » 01.07.2009 21:16:20

Как определяешь, что пусто?

Добавлено спустя 37 секунд:
А вдруг в тексте присутствует Латиница?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Как распознать кодировку текстового файла

Сообщение SergeySmlInf » 02.07.2009 16:47:20

А у меня первая строка файла данных содержит заголовок кириллицей.
А сравниваю тупо размеры: считаную строку с этой же строкой помещенной в Tmemo, TlistBox, TEdit
Пока глюков не было...
SergeySmlInf
новенький
 
Сообщения: 40
Зарегистрирован: 02.10.2007 07:59:26
Откуда: Смоленск

Re: Как распознать кодировку текстового файла

Сообщение Mr.Smart » 02.07.2009 17:50:44

Зачем такие сложности?
Код: Выделить всё
var
s: String;
...
  if Utf8ToUnicode(nil,0,PChar(s),Length(s))<>-1 then
   // UTF8
  else
  // Ansi
...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!


Вернуться в Lazarus

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

Рейтинг@Mail.ru