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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.08.2012, 12:09
smpsmath smpsmath вне форума
Прохожий
 
Регистрация: 19.08.2012
Сообщения: 6
Репутация: 10
По умолчанию Сохранение данных при перезапуске

Необходимо временное сохранение данных при перезапуске математической программы. Данные довольно разнородны несколько матриц 4х4, 100х100, такие же вектора, отдельные числа. При каждом перезапуске программа считает их по новой тратя 99,9% времени, но они не меняются. Можно ли временно соханить их значение без компонент и файлов?
Ответить с цитированием
  #2  
Старый 19.08.2012, 12:45
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Если без файлов, то разве что в буффер обмена. А чем файлы не устраивают?
Ответить с цитированием
  #3  
Старый 19.08.2012, 13:05
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

я писал для каждого нужного типа процедуры записи в файл и загрузки, не сохранились
__________________
>woweook<
Ответить с цитированием
  #4  
Старый 19.08.2012, 13:14
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Я, например, все сейчас сохраняю через TMemoryStream. До этого использовал класс File, но почему-то он стал сохранять данные в 5(!) раз большие за размером файлы, чем TMemoryStream. Например, если через File файл занимал 600 мб, то через TMemoryStream - 65-80 мб. И в обох случаях все прекрасно читалось. Ну, еще параллельно использую модуль ZLib для сжатия - файл вообще занимает в таком случае 3-4 мб. И через TMemoryStream надежнее, кажись.
Ответить с цитированием
  #5  
Старый 19.08.2012, 13:19
smpsmath smpsmath вне форума
Прохожий
 
Регистрация: 19.08.2012
Сообщения: 6
Репутация: 10
По умолчанию

Программа для других юзеров и писать лишние файлы без его согласия неприлично. Ну а буфер обмена, так ведь компонент Memo не обнуляется при перезапуске и хранить в нем - это единственное видимое мной решение.
(Данные нужны только самой программе). Но можно ли перезапускать без обнуления переменных Real, Array of Real?
Ответить с цитированием
  #6  
Старый 19.08.2012, 13:28
smpsmath smpsmath вне форума
Прохожий
 
Регистрация: 19.08.2012
Сообщения: 6
Репутация: 10
По умолчанию

Под перезапуском я имею в виду не повторное открытие .exe а просто новый расчет OnEvent.
Ответить с цитированием
  #7  
Старый 19.08.2012, 13:35
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

без компонент и файлов – да
__________________
>woweook<
Ответить с цитированием
Этот пользователь сказал Спасибо Pyro за это полезное сообщение:
smpsmath (19.08.2012)
  #8  
Старый 19.08.2012, 13:43
smpsmath smpsmath вне форума
Прохожий
 
Регистрация: 19.08.2012
Сообщения: 6
Репутация: 10
По умолчанию

Ответ, конечно, буквальный. А как?
Ответить с цитированием
  #9  
Старый 19.08.2012, 13:49
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Обьявлять нужные данные глобально. Тогда они будут "висеть" в памяти до кончания работы программы.
Ответить с цитированием
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение:
smpsmath (19.08.2012)
  #10  
Старый 19.08.2012, 14:15
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

могут быть проблемы, если легко не определяется, какие данные пересчитывать заново, а какие взять из сохранённых
__________________
>woweook<
Ответить с цитированием
  #11  
Старый 19.08.2012, 14:24
smpsmath smpsmath вне форума
Прохожий
 
Регистрация: 19.08.2012
Сообщения: 6
Репутация: 10
По умолчанию

Все что выдал HELP: "Variables declared within a procedure or function are sometimes called local, while other variables are called global."
Т.е. необходимо их обьявить до uses? и вроде для global есть еще синтаксис?
Ответить с цитированием
  #12  
Старый 19.08.2012, 14:52
smpsmath smpsmath вне форума
Прохожий
 
Регистрация: 19.08.2012
Сообщения: 6
Репутация: 10
По умолчанию

Спасибо. Обьявил var в разделе interface и вроде получилось для real. Я догадывался, что есть путь проще чем через Memo, поэтому и спрашивал.
Ответить с цитированием
  #13  
Старый 19.08.2012, 21:27
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Наверное удобнее сохранять не в var, а в запись (record).
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter