|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.12.2009, 21:13 | #1 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Проблемы с PChar (Считывание из ini файла)
Всем привет.
Вот у меня такая проблема Есть структура Код:
процедура считывания и заполнения указателей в list: tList Код:
Код:
Причём если в tRec все переменные типа string То всё ОК. В аттаче полный проэкт. (В Delphi 7 полная неразбериха) |
17.12.2009, 21:27 | #2 |
Форумчанин
Регистрация: 05.12.2007
Сообщений: 236
|
pChar - имеет размер 4 байта, какие проблемы?
|
17.12.2009, 23:57 | #3 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Код:
1. Формирование строк (адреса в памяти) для '000', '1', '(S 1---)' 2. Выделение в памяти "типа" String (локально) как результата для iniFile.ReadString 3. Вызов iniFile.ReadString 4. Получения адреса первого "символа" результата вызова iniFile.ReadString который "записался" ранее зарезервированное место п. 2 5. pr.s1 хранит адрес пункта 4 6. list.Add(pr); - сохранение адреса на адрес на адрес так сказать. не важно. 7. ret - он же end; данной функции, освобождение локально выделенной памяти пункт 2. 8. Теперь по сути, место в памяти куда указывает pr.s1 может модифицироватся как угодно системой, либо резервироватся самой программой, т.к. оно было освобождено. Цитата:
Рещение Выделять память под PCHAR надо, а не просто тыкать куда попало. Дополнение Если Код:
Код:
p.s. извените может немного напутал куда ставить оператор разименования, давно дельфи не использую Последний раз редактировалось BOBAH13; 18.12.2009 в 00:00. |
|
18.12.2009, 08:21 | #4 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Ладно, попробую. Дааа, работа с указателями, это головная боль. А при pChar счетчик ссылок есть?
----------- Не работает. Вернее результат другой, но все равно не то. Код:
Последний раз редактировалось Altera; 18.12.2009 в 10:12. |
18.12.2009, 10:50 | #5 | ||
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
Цитата:
|
||
18.12.2009, 13:10 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
за PChar вы следите сами, счетчика нет.(вы же память выделяете, вы же должны освобождать)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.12.2009, 14:40 | #7 |
Пользователь
Регистрация: 17.12.2009
Сообщений: 18
|
А нафига весь этот гемор, можно сделать проще. Как-нибудь так, например:
Код:
|
18.12.2009, 20:08 | #8 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Ничего не легче.
Реализовали так Код:
|
18.12.2009, 20:13 | #9 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
А размер и состав экзешников не сравнивали?
Компилятор все эти "извраты" должен приводить к одному и тому же виду... |
18.12.2009, 20:27 | #10 | |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
2mihali4, это вы типа над нами глумитесь?
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
c++ считывание с файла. | tsergey | Помощь студентам | 20 | 24.04.2010 23:30 |
Создание и считывание .ini файлов | Патрон | Общие вопросы Delphi | 4 | 21.04.2008 03:25 |
Проблемы с Ini-файлами | Азазель | Общие вопросы Delphi | 6 | 08.09.2007 19:24 |
Access violation на строке вида StrLCopy(PChar(st1),PChar(st2),10); | malor | Общие вопросы Delphi | 1 | 11.07.2007 13:39 |
проблемы с INI | delphi | Общие вопросы Delphi | 4 | 10.04.2007 00:28 |