|
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
|
|
TMemIniFile и его кодировка при перезаписи07.05.2017, 09:55. Показов 1947. Ответов 13
Метки нет (Все метки)
Добрый день. Помогите решить проблему! Есть файл
mt_1000 = new TMemIniFile(MemoName,TEncoding::Unicode) ; и переменная UnicodeString Key3_2 На компе язык программ, не поддерживающих юникод - русский В переменной содержится строка на иврите При добавлении в mt_1000 mt_1000->WriteString("Panel Only "+NumPanel, "Key3_2", Key3_2); в Key3_2 все как надо, но в самом файле где иврит - знаки вопросов. Ясно, что файл перезаписывается не в кодировке Unicode Есть возможность исправить эту ситуацию?
0
|
|
| 07.05.2017, 09:55 | |
|
Ответы с готовыми решениями:
13
Запись текста в файл без его перезаписи
Замена строк в текстовом файле без его перезаписи |
|
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
|
||
| 07.05.2017, 13:30 [ТС] | ||
|
mt_1000 = new TMemIniFile(MemoName,TEncoding::Unicode) ; дальше заполняю разные mt_1000->WriteString(..... и только в последней функции делаю mt_1000->UpdateFile(); и удаляю его. Прикол в том, что если делать UpdateFile после каждого WriteString, все как надо пишется. А если один раз в конце - такая вот проблема - файл переписывается не в той кодировке, что нужно. Очень странно.... Но если делать обновление файла после каждой записи - существенно увеличивается время формирования файла. Раз в 10 дольше.
0
|
||
|
Супер-модератор
|
|
| 07.05.2017, 17:16 | |
|
Можно тестовый проект показать, в котором проблема воспроизводится? У меня что-то не получилось. Записал значения в ini-файл в трех разных функциях, только в третьей вызвал UpdateFile() - все нормально сохранилось, в той же кодировке UCS-2 LE BOM
1
|
|
|
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
|
||
| 08.05.2017, 20:21 [ТС] | ||
|
0
|
||
|
Супер-модератор
|
|
| 08.05.2017, 20:26 | |
|
Пардон, а как у него может быть кодировка ANSI, если TMemIniFile создается со вторым параметром равным TEncoding::Unicode? Или это сторонний INI, не создаваемый твоим приложением? Тогда его надо переконвертировать в UTF16 перед тем, как использовать.
1
|
|
|
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
|
||
| 08.05.2017, 20:52 [ТС] | ||
|
0
|
||
|
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
|
||
| 08.05.2017, 22:08 [ТС] | ||
|
Добавлено через 56 минут Пока исходя из того, что если файл перезаписывается, то он никому не нужен - в любом случае после CurrNameMEMO = SaveDialog3->FileName; делаю DeleteFile(CurrNameMEMO.c_str()); но можно ли так и правильно ли это....
0
|
||
|
Супер-модератор
|
||
| 09.05.2017, 09:02 | ||
|
1
|
||
|
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
|
|
| 09.05.2017, 09:10 [ТС] | |
|
Вся текущая информация содержится в структурах приложения и из них формируется заново файл. Так что не только можно, но и нужно. Спасибо большое. Но хотелось бы для общего развития знать, как сделать конвертацию файла в нужную кодировку, или её поменять, если файл уже есть, но он пустой.
0
|
|
|
Супер-модератор
|
||||||
| 09.05.2017, 09:49 | ||||||
|
В 2009+ конвертацию можно сделать так:
UTF-8 BOM (мой тестовый before.ini был создан с TEncoding::UTF8) сконвертируется в UCS-2 LE BOM, и прекрасно открывается через TMemIniFile с указанием TEncoding::Unicode.А пустой файл лучше просто удалить и перезаписать потом уже в новой кодировке.
4
|
||||||
|
21 / 9 / 4
Регистрация: 15.12.2014
Сообщений: 663
|
|
| 09.05.2017, 12:22 [ТС] | |
|
0
|
|
| 09.05.2017, 12:22 | |
|
Помогаю со студенческими работами здесь
14
В чем ошибка при перезаписи файла? TMemIniFile переменная получает значение NULL
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|