![]() |
|
|
![]()
|
|
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Не подскажите, как научить программу сохранять файлы в выбранной кодировке. Типа как у блокнота. Спасибо.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 4 Всего: 162 |
Перекодировать в нужную кодировку, сохранить |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Ну, до этого я сразу додумался. Больше интересует: КАК это сделать (перекодировать)? Может есть какие-нибудь библиотеки или алгоритмы? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
библиотека iconv Добавлено через 2 минуты и 44 секунды конвертация |
|||
|
||||
| Crut |
|
|||
|
Эксперт ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 27.11.2007 Где: Воронеж Репутация: нет Всего: нет |
Вот пример:
Но эта по клаве, а для стандартов - смотри таблицу. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 4 Всего: 162 |
Crut, ужас какой... перепиши хоть со строками, что ли.
|
|||
|
||||
| Crut |
|
|||
|
Эксперт ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 27.11.2007 Где: Воронеж Репутация: нет Всего: нет |
???
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 4 Всего: 162 |
не находишь, что этот код слишком избыточен и накосячить в нём - как пить дать? |
|||
|
||||
| Crut |
|
||||
|
Эксперт ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 27.11.2007 Где: Воронеж Репутация: нет Всего: нет |
C коментами что-ли?
// эта по клаве, а так: void ch_shd(char &a){ a = a + 1; }
Добавлено через 2 минуты и 49 секунд извеняюсь, за вопрос - можем тормозит.... Добавлено через 3 минуты и 17 секунд (модем) |
||||
|
|||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 4 Всего: 162 |
причём тут комментарии? я говорю про то, что почему не юзается таблица перекодировки, а написано 60 строчек кода с захаркодеными символами? Идём дальше. Представь, что тебе нужно будет сделать перекодировку в другую кодировку. Что ты будешь делать? Напишешь ещё 60 строчек кода? а если в 10 кодировок? |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Crut я имел в виду не то, что ты написал. Я имею ввиду: как сделать чтобы сохранять файлы в кодировках, как у блокнота.
Fazil6 можешь написать примерчик использования библиотеки? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
Вбей русскую раскладку в один массив, а английскую во второй (они должны быть одинаковой длины) и кодируй. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
||||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Fazil6, я просто не совсем понял приведённый тобой пример. Можешь как-то подробнее объяснить и на конкретном примере, плиз.
И ещё вопрос: где взять таблицы кодировок и как ими пользоваться? Спасибо. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
||||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
В библиотеке iconv, только я сам хочу узнать как её кстановить, простым переносом файла в папку инклуд не выходит. -------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
||||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
так там куча файлов в архиве, какую папку прописывать непонятно. Вот я и нашел iconv.hpp и кинул в папку include -------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
ну естественно, обычно ведь в архиве только один файл имеет значение. Остальные - так, для придания веса и солидности. Особенно всякие там readme и install |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
что-то там много всего написано. можешь просто написать: какой функцией, откуда и куда конвертировать. А лучше, подскажи, где таблицы кодов взять. Спасибо. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Fazil6 |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
может быть стоит напрячься? 30 строк кода не так уж много.
это обертка для вызова непосредственно функций iconv. Включает в себя 2 функции, одна вызывает другую.
неужели из этого примера непонятно
??? Добавлено через 7 минут и 24 секунды а зачем тебе? Неужели читать документацию дольше и сложнее чем писать велосипеды. Сконвертировать из одной кодировки в другую не такая уж тривиальная задача в общем виде. Хотябы потому, что символы в разных кодировках имеют неодинаковую длину. Если так уж хочешь узнать какой функцией куда, то открой iconv.h и посмотри. Там всег-то 5 функций. Причем в коментах подробно описаны все. |
||||||
|
|||||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Fazil6, спасибо.
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Fazil6
почему-то нету в архиве ни iconv.hpp, ни iconv.h. Где их взять? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
А у Билдера, оказывается, есть свои средства. Вот, из справки:
![]() Мне этого хватит, нужно только разобраться. И всётаки, почему нет в архиве ни iconv.hpp, ни iconv.h. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
В архиве как раз и есть эти файлы, но вот как поставить чтобы все работало я что-то не врубился. Это сообщение отредактировал(а) s1lver - 5.1.2008, 17:05 -------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Да нет там этих файлов. Всё перерыл, поиск юзал. Нет их там.
s1lver если можешь, выложи свой архив. Устанавливается, вроде, так: Меню Tools->Environment Options, на вкладке Library, жмёшь кнопку с тремя точками, напротив Library path, и добавляешь путь к папке с библиотекой. Вот, вроде, и всё. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
Понятное дело. Только к какой папки прописывать? бериlibiconv-1.11.tar -------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Пишет: "Нет такой страницы". Кстати у меня этот же архив - libiconv-1.11.tar Странно, почему там нет этих файлов. Ладно, не парься. Спасибо. Пропиши к общей папке. Билдер сам найдёт. Это сообщение отредактировал(а) artsb - 6.1.2008, 17:25 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
Усе правильно. Там ведь архив, я был уверен,что все нормально, тк. использую Download Master он все благополучно скачивает.
Это сообщение отредактировал(а) s1lver - 6.1.2008, 17:28 -------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
DownloadMaster не может закачать. Пишет ошибка. Ну да ладно.
А в каком каталоге у тебя лежит iconv.hpp? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
-------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
iconv.c у меня есть. Но Fazil6 в своём примере подключал iconv.h, которого у меня нет.
Fazil6 разъясни ситуацию, плиз. И ещё возник вопрос: Содержимое файла, при его открытии, я помещаю в memo. Если открываю файл, сохранённый в кодировке ANSI, то всё нормально. Но если файл был сохранён в другой кодировке (например, UTF-8), то в memo появляются всякие закорючки. Следовательно, нужно файл, при открытии, перевести в ANSI. Но как узнать в какой кодировке был сохранён открываемый файл? Это сообщение отредактировал(а) artsb - 7.1.2008, 12:22 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 11 Всего: 60 |
||||
|
||||
| s1lver |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
На мой взгляд можно просто преобразовывать файлы при открытии из UTF-8 в ANSI, без выявления кодировки...... Вот попробовал примерчик.
Ошибки: [C++ Error] Unit1.cpp(26): E2316 'string' is not a member of 'std' [C++ Error] Unit1.cpp(26): E2379 Statement missing ; Может я что-то не так понял? Что надопоместить в namespace UTF8CONVERTER{}? Это сообщение отредактировал(а) s1lver - 9.1.2008, 10:19 -------------------- Я собрался жить вечно - пока все идет нормально! |
||||
|
|||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Если он уже был в ANSI, то получатся закорючки. Fazil6 говорит, что распознать не получится. Можно просто сделать меню с выбором кодировки. s1lver а откуда у тебя iconv.h? -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
Мне Fazil6 скинул на мыло.
а у тебя уже есть работающий код? Это сообщение отредактировал(а) s1lver - 9.1.2008, 20:45 -------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Да нет, я решил обойтись встроенными средствами. А библитеку просто так взял. Всё равно пригодится. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
-------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
Дык я ж ранее скриншот из хэлпа кидал. В хэлпе пиши "Character set conversions". А там разберёшься. Я сам ещё толком не разбирался. Пока другим занят. Это сообщение отредактировал(а) artsb - 9.1.2008, 21:56 -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| s1lver |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 14.12.2007 Где: Россия Репутация: нет Всего: нет |
нарыл тут один примерчик, сейчас буду пробовать
-------------------- Я собрался жить вечно - пока все идет нормально! |
|||
|
||||
| artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 39 Всего: 64 |
-------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
| KTatsu |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 23.8.2008 Где: Москва Репутация: 1 Всего: 1 |
Прошу простить за "некропостерство", но вопрос все еще в силе - как собрать библиотеку?
Ридми и инсталл я нашел, но толком ничего не понял из их содержания. И тоже не совсем понял данный код:
|
|||
|
||||
| Infector |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 13.1.2008 Репутация: нет Всего: 2 |
А можно еще вопрос небольшой:
нужно кодировку ДОС перегнать в Ansi, соответственно пишу код: for (int i=1; i<Memo2->Lines->Count; i++) { Memo1->Lines->Add(Utf8ToAnsi(Memo2->Lines->Strings[i])); } В результате все запускается, но вместо преобразования кодировки получаю удаление строк с русскоязычными символами |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
ДОС - это не UTF8!
|
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
Infector, OemToChar
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |