![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
JS2 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 25.3.2009 Репутация: нет Всего: нет |
имеется наследник TList - TListA список записей типа:
Вручную написал методы сохранения/чтения списка в файл. Вот код:
Список вроде как и сохраняется и загружается, но вот только при выводе тестового поля какой-либо записи (ShowMessage(Lst.Items[0].Name)) списка дописываюся лишние символы. В чем может быть ошибка? |
||||
|
|||||
Лапоть |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 3.4.2009 Репутация: нет Всего: 2 |
Строки в структурах хороши, пока не надо писать/читать в/из файл(а). Поменяй тип данных для TItemA.Name - на символьный массив заданной длины (что-нибудь типа array [0..127] of char).
Кстати, в этом случае ты сможешь читать/писать запись целиком (она всегда будет одной и той же длины), а не почленно. Это сообщение отредактировал(а) Лапоть - 25.4.2009, 18:35 |
|||
|
||||
kami |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Неправильная работа со строками, а именно - в методах Read и Write.
1. Чтение и запись строк производить нужно, начиная с первого символа, т.е. не str а str[1]. 2. При New(p) инициируется пустая строка. Как вы пишете в нее, не установив длину - непонятно (хоть длину строки сохраняете, уже очень хорошо). Правильно так: в LoadFromFile вместо Read(Name, L);
В SaveToFile вместо Write(Name, L);
Добавлено через 3 минуты и 2 секунды И будет вам счастье невыразимое в работе со строками. ![]()
Они также хороши и при записи/чтении в/из файла. Просто нужно уметь их готовить. Добавлено через 10 минут и 34 секунды JS2, еще одно замечание/предложение: не используйте With без крайней необходимости. причина простая: если бы этот код находился в классе TForm1 (к примеру), то возможно возникновение неявной ошибки: поле Name есть и у TForm1, и что из них (св-во TForm или поле TItemA) пойдет на чтение/запись - это нужно долго и упорно читать документацию или шагать отладчиком (который, кстати, тоже не очень жалует всплывающими подсказками with). |
||||||
|
|||||||
Лапоть |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 3.4.2009 Репутация: нет Всего: 2 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |