![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
![]()
Здравствуйте. Почему-то не сохраняется в файл структура, да не то структура, даже обычные переменные не сохраняются.
Архивчик прикрепляю... Процедуры для просмотра SaveTest и OpenTest Файлик с названием test получается в результате сохранения А структура сформированная для сохранения выглядит так: Код:
|
![]() |
![]() |
![]() |
#2 |
Заблокирован
Регистрация: 11.12.2009
Сообщений: 133
|
![]()
SaveOpenFileStream.Write(str,length (str)*SizeOf(str[1]));
|
![]() |
![]() |
![]() |
#3 |
Заблокирован
Регистрация: 11.12.2009
Сообщений: 133
|
![]()
SizeOf(string) будет всегда 4 байта так так сохраняется только указатель
когда читаеш SaveOpenFileStream.Read(str,SizeOf( str)); тоже размер читаемой строки не известен. надо сформировать структуру файла где бутет храниться размер строки а потом сама строка Последний раз редактировалось пауэрлифтинг; 23.04.2010 в 00:03. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
![]()
пауэрлифтинг, а что касается записи, как мне выделить память под структуру. Тем более что в ней хранятся массивы строк, да ещё неопределённые массивы....
Что же за формула получается...? |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
память под структуру выделяем как обычно, через new
а вот насчет сохранения/чтения записей. вам нужно дин массив выделить последним в записи. далее нужно длина этого массива как поле структуры Код:
переменки Код:
Код:
Код:
тут 1 это количество динамических массивов структуры(да-да-да, можно хранить так структуры хоть с тысячью дин массивов) ** тип сохраняемого дин массива(array of boolean) вот так ![]() Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#6 |
Заблокирован
Регистрация: 11.12.2009
Сообщений: 133
|
![]() Код:
Код:
Код:
Последний раз редактировалось пауэрлифтинг; 23.04.2010 в 01:44. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
![]()
Спасибо, буду пробовать...
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
![]()
Пепел Феникса не понятно для чего
Код:
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
у вас он и есть динамический(длина не фиксированна)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
![]()
Пепел Феникса, оказывается я не понял вас. Я не правильно прочитал.
Вот как я это понял, если что поправьте. Заводим поле ResultValueLength:integer; для определения размера, чтобы потом выделять при записи и чтении. Ну а последним это поле ResultValue :array of Boolean;, чтобы определять память по полю ResultValueLength:integer;? Видимо так... |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не сохраняется | Rebel123 | Общие вопросы Delphi | 11 | 08.07.2009 19:37 |
Объясните мне TFileStream | Манжосов Денис :) | Помощь студентам | 1 | 15.11.2008 13:36 |
проблемы с TFileStream | andrey4623 | Общие вопросы Delphi | 9 | 01.11.2007 20:44 |
сохранение изображения с TFileStream | andrey4623 | Общие вопросы Delphi | 10 | 20.10.2007 20:28 |
TFilestream | UnD)eaD)Snake | Win Api | 1 | 27.09.2007 21:22 |