Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2008, 16:17   #1
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию сохранение значений прямо в exe

имеется вот такая программка:
Код:
var
  Form1: TForm1;
  i: integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1;
Label1.Caption:= IntToStr(i);
end;
с каждым нажатием кнопки - переменная i увеличивается на 1 единицу. Например нажал 5 раз на кнопку i стало равным 5-ти.
Возможно ли такое, что при следующем запуске программы переменная i уже имеет начальное значение - именно то, которое мы дали дали ей нажатием кнопки в прошлый раз. Без использования бд и файлов. Как сделать чтобы значение переменной i запоминалось в exe.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 24.11.2008, 16:27   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

4 байта вашей переменной храниться в памяти по адресу @i.. и с ними соответсвенно можно сделать все что хочеш. Записать в ехе извращенский способ честно говоря. Записать в самого себя без использования внешних файлов :D используйте реестр в таком случае...
BOBAH13 вне форума Ответить с цитированием
Старый 24.11.2008, 16:49   #3
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

2 BOBAH13 - уже что-то а как с этим @i работать? можно пример? или ссылку где прочитать? а реестр не подходит мне никак, так как это приложение будет переноситься на другие компы
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 24.11.2008, 16:55   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Есть конечно очень кривой вариант ( то что в голову пришло ) при закрытии вашей проги копируите ParamStr(0) например в ParamStr(0) + '.tmp' потом скопированный .tmp файл открываите и дописываите в конец ваши данные. потом создаете батник (.bat файл) пишите чтобы он дождался завершения вашей проги удалил ее и тот файл .tmp переименовал на то же самое имя но без .tmp рашсирения... а при загрузке проги аналогично делаите только без батника для чтения ехе из конца ехе данных ваших... может конечно есть и другой вариант но то что первое в голову взбрело
BOBAH13 вне форума Ответить с цитированием
Старый 24.11.2008, 17:01   #5
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

2 BOBAH13 - я в обоих вариантах дуб дубом. Но вот возникла задача такая, хочу разобраться. Теоретически мне понятно. Но как это реализовать в коде? Скажи подробнее или ссылочку дай, где можно почитать...
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 24.11.2008, 22:46   #6
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Если Вам надо переносит программу, тогда самый лучший вариант это INI файлы.
FaTaL вне форума Ответить с цитированием
Старый 25.11.2008, 00:04   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Ini-файл не надёжно. Я так понял, это защита программы на количество запусков.
Arigato вне форума Ответить с цитированием
Старый 25.11.2008, 16:46   #8
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

2 FaTaL - ini-файл не прокатит в данном случае.
2 Arigato - да, защита на количество запусков - это одна из тех задач, которая мне поставлена. Только как именно это сделать или дайте ссылку, какие темы нужно освоить?
Изо всей благодати
В руках крепко сжатых
Я донесу только капли

Последний раз редактировалось Roof; 25.11.2008 в 16:48.
Roof вне форума Ответить с цитированием
Старый 25.11.2008, 17:30   #9
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Может бред, но вот идея.Использовать графику.Создаете простенький файл .bmp, заносите его в файл ресурсов (файлы ресурсов сохраняются в .exe шниках и просто к нему не добраться без кода).Рисуете в файле, скажем прямоугольник и при каждом запуске достаете из ресурса файл куда нибудь на невидимый буфер.Увеличиваете размер прямоугольника, сравниваете с заданным предельным.Файл обратно вернули в ресурс.Достигли равенства или больше - сброс программы.Вся процедура может происходить фоном незаметно.
Как вам такое решение?
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 25.11.2008, 17:42   #10
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

2 DeKot - честно - очень интересное. Но как рисовать этот прямоугольник? и как его в ресурс запихнуть - чтобы он изменнялся?
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вставка значений Iskin Microsoft Office Excel 0 27.10.2008 13:21
Суммирование значений БД Andi2118 БД в Delphi 3 12.10.2008 20:25
Поиск значений Rom1k06 Microsoft Office Excel 11 04.09.2008 05:14
Перевод значений DeDoK Общие вопросы Delphi 3 19.05.2008 08:39
Сложение значений Torrenter Компоненты Delphi 2 11.01.2008 19:14