![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| PROeXT |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.12.2005 Где: Москва Репутация: нет Всего: нет |
Проблема такая: с Вашего форума взял пример кодировки/раскодировки строк. Вот он:
Однако, когда я начинаю записывать полученные закодированные строки в файл ini, то в этот файл на самом деле записывается совсем не то. Идет подмена символов. Что самое интересное, делаю вот так:
И вот в строке 1 значение Str.Strings[4] не совпадает с тем, что выводит ShowMessage(строка 2). И что самое интересное - ShowMesssage вообще показывает пустую строку!!! Никто не знает, в чем может быть проблема и как ее можно обойти? Да, в работе использовалась Delphi 7 Enterprise |
||||
|
|||||
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Я не спец, но всё-таки ShowMessage возвращает пустую строку скорее всего потому, что в ini файле просто нет таких записей. Тоесть вот такая штука:
ShowMessage(ReadString(Str.Strings[0],Str.Strings[3],'Error')); вернет тебе 'Error'. Если не хочешь пошагово глянуть все параметры, для теста сделай вот так:
Если ShowMessage покажет 'test string' разбирайся с codec, если 'Error' кидай полный код своих процедур. |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
В ини файлах все данные записываются только после закрытия файла. Т.е. после IniFile.Free; до этого они хранятся в оперативной памяти. Поэтому делай ShowMessage только после закрытия файла.
-------------------- Ll 2 |
|||
|
||||
| PROeXT |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.12.2005 Где: Москва Репутация: нет Всего: нет |
Так ведь и я об этом же. Вот пример: трассирую выполнение. Дохожу до строки кода IniFile.WriteString... Вижу, что будет записываться ветка abcd=jkl. Выполняю. Закрываю прогу. Открываю ini средствами ОС. И что я вижу? Вместо abcd=jkl записано dnjf=eif. Насчет кода.... Ну так вроде я и так уже весь код практически выложил... Или что-то не хватает? |
|||
|
||||
| Elfebet |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 545 Регистрация: 15.5.2006 Где: Украина. Запорожь е. Репутация: 2 Всего: 14 |
зачем ты делаеш
если еще не записалось в файл
-------------------- Программист не должен всё знать... он должен знать где можно посмотреть |
||||||||
|
|||||||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Просто сделай так, если уж хочешь посмотреть на содержимое инифайла:
и тогда в ShowMessage появится твои данные. -------------------- Ll 2 |
|||
|
||||
| PROeXT |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.12.2005 Где: Москва Репутация: нет Всего: нет |
Я делал иначе: после окончания работы проги, я делал Ini.Free, а потом открывал файл в проводнике и видел, что то, что туда записалось СУЩЕСТВЕННО ОТЛИЧАЛОСЬ ОТ
По моему мнению, это какая-то ошибка с преобразованием и записью символов в текстовый файл (ведь по сути, ini-файл текстовый, не так ли?).... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |