Кодировка текста никак не пойму

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

Кодировка текста никак не пойму

Сообщение newonline » 18.08.2005 (Чт) 19:51

Пишу новый класс, который читает текстовый файл и преобразует его в таблицу в соответствии с заданные ему СИМВОЛОМ-РАЗДЕЛИТЕЛЕМ.
Например: MyClassTableCreator.CreateTable (SymbolSeparator).
Немогу корректно передать символ - все кодировка портит собака такая.
:x И вообще как связаны имя шрифта и Unicode, Ansi, ISO, KOI-8R, DOS... ПОЖАЛУЙСТА ПРОСВЕТИТЕ НЕУЧА.
Или ссылочку с пояснениями. ПЛЗ :cry:
Последний раз редактировалось newonline 18.08.2005 (Чт) 20:32, всего редактировалось 1 раз.
Оно конечно да, ежели что как...а то ведь как получится, так вот вам и пожалуйста...

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 18.08.2005 (Чт) 20:08

newonline
тссс не надо кричать - тут модераторы строгие :wink:
Пошли все на фиг, я фея! :flower:

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

Сообщение GSerg » 19.08.2005 (Пт) 2:49

Ну и нафига одну тему в два раздела?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

newonline
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 13.08.2005 (Сб) 14:50
Откуда: Воронеж

Сообщение newonline » 19.08.2005 (Пт) 16:20

Спасибо, ребята. Пордон за шум. Буду вести себя примерно. :oops:
А подскажите тогда, как научить прогу распознавать кодировку открываемого файла и как можно передать корректный символ методу, чтобы код моего символа и символ-разделитель в файле соответствовали друг другу? :roll:

Вот сам файл, который надо разобрать на таблицу (FlexGrid) в соответствии с символом разделителем "|".
Вложения
0000068C.rar
Вот сам файл, который надо разобрать на таблицу (FlexGrid) в соответствии с символом разделителем "|".
(595 байт) Скачиваний: 23
Оно конечно да, ежели что как...а то ведь как получится, так вот вам и пожалуйста...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 19.08.2005 (Пт) 16:52

newonline писал(а):А подскажите тогда, как научить прогу распознавать кодировку открываемого файла


Да по разному... Простейший способ - если файлы одного формата(как ты привел) но в разных кодировках (ANSI/OEM) то можно просто посмотреть есть ли в первых нескольких символах слово Код если есть, то это ANSI, если нет то делаем OemToChar и снова смотрим. В итоге мы знаем в какой кодировке наш файл.

newonline писал(а): и как можно передать корректный символ методу, чтобы код моего символа и символ-разделитель в файле соответствовали друг другу? :roll:


А тут-то какая проблема?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 19.08.2005 (Пт) 17:52

Универсально определить кодировку сложно. Но если есть ключевые слова, то проблем возникать не должно никаких. По поводу разделителя: символ "|" имеет одинаковый код во всех перечисленных кодировках, если я не ошибаюсь. Так что split всегда будет срабатывать правильно.
То, что для одних константа, для других только переменная...

newonline
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 13.08.2005 (Сб) 14:50
Откуда: Воронеж

Сообщение newonline » 19.08.2005 (Пт) 18:17

Andrey Fedorov писал(а):
newonline писал(а):А подскажите тогда, как научить прогу распознавать кодировку открываемого файла


Да по разному... Простейший способ - если файлы одного формата(как ты привел) но в разных кодировках (ANSI/OEM) то можно просто посмотреть есть ли в первых нескольких символах слово Код если есть, то это ANSI, если нет то делаем OemToChar и снова смотрим. В итоге мы знаем в какой кодировке наш файл.

newonline писал(а): и как можно передать корректный символ методу, чтобы код моего символа и символ-разделитель в файле соответствовали друг другу? :roll:


А тут-то какая проблема?



Дело в том, что если в текстовое поле я с клавиатуры помещаю символ "|" , а затем метод принимает это символ в работу, то внутри класса этот символ превращается в число-код символа (смотрел значение переменной в стоп-поинте). А если я в класс принудительно добавляюю функцию Chr(SeparatorSymbol) - то в файле он не обнаруживает ни одного совпадения (хотя их там валом).
Так как возможно корректно выбрать из какой-нибудь библиотеки символов этот символ-разделитель и отдать его методу на растерзание? :cry:
И как использовать OemToChar? :roll:
Вложения
0000068C.rar
(595 байт) Скачиваний: 22
Оно конечно да, ежели что как...а то ведь как получится, так вот вам и пожалуйста...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 19.08.2005 (Пт) 18:25

что то я все меньше и меньше понимаю, может помимо файл, предназначенного для "разборки" увидим и собственно код его разбирающий?
Весь мир матрица, а мы в нем потоки байтов!

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 19.08.2005 (Пт) 18:51

Я определяю кодировку таким способом. (ниже лежит проект сделаный когда-то на эту тему).
Но это если нужно определить только две кодировки (Win1251 или OEM).
Плюсы - почти стопроцентное определение кодировки на файлах среднего размера.
Минусы - плохое определение кодировки на маленьких файлах. :(

Кнопка GenFiles генерирует кучу файлов с разной кодировкой для тестирования качества определения.
Вложения
Кодировка.rar
Определение кодировки
(68.91 Кб) Скачиваний: 19
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

newonline
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 115
Зарегистрирован: 13.08.2005 (Сб) 14:50
Откуда: Воронеж

Сообщение newonline » 19.08.2005 (Пт) 20:02

Отлично! Разобрася с проблемой, мужики - заработала. Всем спасибо, кто отозвался.
Кому интересно или нужно могу скинуть класс. События и метды объясню.
Вообщем, вы ему файл и символ разделитель, а он вам:
1. Доступ клюбой строке файла
2. Доступ к любому символу файла
3. Количество строк не подлежащих разбиению на таблицу (простая текстовая инфа в файле) и соответственно доступ к каждой из них.
4. Автоматическое определение кол-ва строк и столбцов и тоже доступ к любой ячейке.

Что-то возможно надо доработать.

Вещь банальная, но кому-то может пригодиться и возможно упростить работу.

Всем СПАСИБО за помощь!!!
Оно конечно да, ежели что как...а то ведь как получится, так вот вам и пожалуйста...


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

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

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

    TopList