Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.11.2013, 19:42
mustimur mustimur вне форума
Прохожий
 
Регистрация: 20.11.2013
Сообщения: 17
Версия Delphi: Delphi xe4
Репутация: 10
По умолчанию Сохранение данных пользовательской переменной в файл

Доброго времени суток всем!
Появилась следующая проблема: надо написать серию программ для расчетов. При том каждая последующая использует данные предыдущий. А их куча и количество определяется при запуске счета (задается пользователем) При расчете данные структурированы в трехмерные, двухмерные и одномерные динамические массивы (их несколько), а исходные данные при этом хранятся в одномерном динамическом массиве и простых переменных. Как все это записать в один файл? создавать собственную структуру файла не хочется.. Создал пользовательский тип:
Код:
Tmymesh = record
   xprof, yprof, Lprof: Array of real;
   np,nlob, ig,jg,kg,napr: integer;
   rp1,rp2,dlrp,hr,lr,rmax, lmax, T1, T2, teta: real;
   mksi,meta,mzeta: array of real;
   mx,my,mz,Jcob: array of array of array of real;
   mxdksi,mydksi,mzdksi: array of array of array of real;
   mxdeta,mydeta,mzdeta: array of array of array of real;
   mxdzeta,mydzeta,mzdzeta: array of array of array of real;
   ksix,ksiy,ksiz: array of array of array of real;
   etax,etay,etaz: array of array of array of real;
   zetax,zetay,zetaz: array of array of array of real;
   ncx,ncy,ncz: array of array of real;
   end;
Админ: Пользуемся тегами для оформления кода!

А что с ним делать дальше как записать в файл, ума не приложу.... Структура file of из-за динамических массивов не годится. Есть какие-нибудь идеи?

Последний раз редактировалось Admin, 20.11.2013 в 20:15.
Ответить с цитированием
  #2  
Старый 20.11.2013, 19:43
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Простейшее решение - пишем размерность массива, потом длину каждого измерения, потом элементы. И так для всех.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 20.11.2013, 19:51
mustimur mustimur вне форума
Прохожий
 
Регистрация: 20.11.2013
Сообщения: 17
Версия Delphi: Delphi xe4
Репутация: 10
Печаль

Цитата:
Сообщение от Bargest
Простейшее решение - пишем размерность массива, потом длину каждого измерения, потом элементы. И так для всех.

Она перемена. И по-большому счету определяется ресурсами компьютера и терпением пользователя от 90х20х20 до 360х50х50 и выше). А каждый раз лезть и менять синтаксисе в данном случае не дело. А задавать с запасом тоже не хочется. или я не правильно понял?
Ответить с цитированием
  #4  
Старый 20.11.2013, 19:54
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Не правильно. Во время выполнения программы длина каждого измерения известна. Допустим, сейчас массив 100х40х40. Вот мы и пишем в файл:
3 100 40 40 <100 * 40 * 40 чисел>
Естественно в бинарном виде.
Чтоб загрузить - читаем эти 4 числа, выделяем массив, читаем элементы.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 20.11.2013, 20:04
mustimur mustimur вне форума
Прохожий
 
Регистрация: 20.11.2013
Сообщения: 17
Версия Delphi: Delphi xe4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Не правильно. Во время выполнения программы длина каждого измерения известна. Допустим, сейчас массив 100х40х40. Вот мы и пишем в файл:
3 100 40 40 <100 * 40 * 40 чисел>
Естественно в бинарном виде.
Чтоб загрузить - читаем эти 4 числа, выделяем массив, читаем элементы.
Я думал об этом но не понял как это проще реализовать. а с бинарными файлами еще не сталкивался, не подскажите на простом примере как можно реализовать?
Ответить с цитированием
  #6  
Старый 20.11.2013, 20:07
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

blockread/blockwrite, TFileStream.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
mustimur (21.11.2013)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter