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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.05.2011, 11:16
Андрей333 Андрей333 вне форума
Прохожий
 
Регистрация: 17.05.2011
Сообщения: 4
Репутация: 10
Вопрос Как сохранить результаты расчета в файле? Help Me!

Здравствуйте!
Написана простейшая программа, с помощью которой расчитывается площадь здания, где вводятся в поля ввода Edit ширина и длина,есть кнопка "Расчитать" и поле для вывода результата. Так же имеется поле для ввода названия здания (например "Дом№8").
Подскажите пожалуйста, как сохранить в файле введеную в форме информацию и полученные результаты, для того что бы выбрав из каталога этот файл открылась вышеописанная программа с введеными в поля исходными данными.
Как сделать, что бы значек у этого файла, соответствовал программе расчета площади (был орегинальным).
Как сделать так, что бы этот файл можно было открыть только этой программой (наверно своеобразное расширение).

Прошу заметить, что я вообще очень новичок, по этому помогите пожалуйста понять процесс который Вы мне возможно предложите, если нет желания подробно описать решение вопроса, то хотя бы дайте ссылку на ресурс или литературу, я сам что то не могу победить эту проблему.

Если нужна дополнительная информация по вопросу - выложу по первому требованию.

Если Вы видите по другому способы реализации, то посоветуйте.

Заранее благодарен.
Андрей333
Изображения
Тип файла: jpg Форма программы.jpg (19.4 Кбайт, 17 просмотров)

Последний раз редактировалось Андрей333, 17.05.2011 в 11:18.
Ответить с цитированием
  #2  
Старый 17.05.2011, 11:21
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

самое самое простое, это использовать класс TIniFile, в инете очень много инфы по нему, это INI файлы, думаю их структуру вы видели где нибудь. Вид будет такой:
[Дом №8]
Площадь=123
и т.д.

Таким способ сможете хранить все замеры в одном файле. Можно конечно использовать базы данных, ту же MS Access например, но это будет уже сложнее.

P.S.: для вызова окна сохранения/загрузки используйте компоненты TOpenDialog и TSaveDialog из вкладки Dialogs (если не путаю)
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя

Последний раз редактировалось Assistant, 17.05.2011 в 11:24.
Ответить с цитированием
  #3  
Старый 17.05.2011, 12:24
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

И поскольку планируется свою иконку иметь то расширение такого файла придумайте свое, что-то уникальное например .ibi
Для запуска вашей программы с помощью такого файла надо просто зарегистрировать данное расширение в системе. Простейший вариант правой кнопочкой на вашем файле с настройками и указать файлом для запуска вашу программу. Но это еще не все. Так вы только зарегистрируете расширение, и будет только запускаться программа, но данные из файла не прочитаются. Для реализации чтения при запуске вам надо будет использовать специальную функции ParamStr:
В общем выглядит это примерно так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
Var
  ibi: TIniFile;
begin
 if ParamCount = 0 then Exit;
 ibi := TIniFile.Create(ParamStr(1));
 Edit1.Text := ibi.ReadString('Data','Edit1','');
 Edit2.Text := ibi.ReadString('Data','Edit2','');
 ibi.Free;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var
  ibi: TIniFile;
begin
 ibi := TIniFile.Create(Copy(ParamStr(0),1,Length(ParamStr(0))-3)+'ibi');
 ibi.WriteString('Data','Edit1',Edit1.Text);
 ibi.WriteString('Data','Edit2',Edit2.Text);
 ibi.Free;
end;
Что касается иконки, то присвойте вашему приложению свою иконку и при ассоциации вашего файла с данными она будет использована.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 17.05.2011 в 12:27.
Ответить с цитированием
  #4  
Старый 17.05.2011, 17:13
Андрей333 Андрей333 вне форума
Прохожий
 
Регистрация: 17.05.2011
Сообщения: 4
Репутация: 10
По умолчанию

Спасибо Вам большое. Ваши ответы я обязательно сохраню, но видимо на потом. Видимо мне не хватает знаний для тог что бы разобраться. Может у кого нибудь есть ссылка на урок с примером подобно моему. Буду признателен.
Ответить с цитированием
  #5  
Старый 17.05.2011, 17:22
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

http://delphisource.narod.ru/Sources/TIniFile.htm
яж дал ссылку, тут всё подробно расписано по сохранению и чтению из INI файла.
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя
Ответить с цитированием
Этот пользователь сказал Спасибо Assistant за это полезное сообщение:
Admin (01.10.2013)
  #6  
Старый 17.05.2011, 20:47
Михалыч Михалыч вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 142
Репутация: 15
По умолчанию

Кнопка "Сохранить данные"
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
with TInifile.Create(SaveDialog1.FileName) Do
begin
  WriteString('Дом','',Edit1.Text);
  WriteString('Длина','',Edit2.Text);
  WriteString('Ширина','',Edit3.Text);
  WriteString('Площадь','',Edit4.Text);
end;
end;
end.
Ответить с цитированием
  #7  
Старый 26.05.2011, 05:10
Андрей333 Андрей333 вне форума
Прохожий
 
Регистрация: 17.05.2011
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Михалыч
Кнопка "Сохранить данные"
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
with TInifile.Create(SaveDialog1.FileName) Do
begin
  WriteString('Дом','',Edit1.Text);
  WriteString('Длина','',Edit2.Text);
  WriteString('Ширина','',Edit3.Text);
  WriteString('Площадь','',Edit4.Text);
end;
end;
end.
Огромное благодарю. А можно код для кнопки "загрузить данные" из файла. И тогда сопоставив оба варианта и их синтаксис наверное добьюсь цели.
Мне можно было бы просто переписать код, но научиться программированию будет сложно. Хотелось бы в предоставляемом Вами коде видеть коментарии по каждой строке - это просьба.
Ответить с цитированием
  #8  
Старый 26.05.2011, 05:14
Андрей333 Андрей333 вне форума
Прохожий
 
Регистрация: 17.05.2011
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
И поскольку планируется свою иконку иметь то расширение такого файла придумайте свое, что-то уникальное например .ibi
Для запуска вашей программы с помощью такого файла надо просто зарегистрировать данное расширение в системе. Простейший вариант правой кнопочкой на вашем файле с настройками и указать файлом для запуска вашу программу. Но это еще не все. Так вы только зарегистрируете расширение, и будет только запускаться программа, но данные из файла не прочитаются. Для реализации чтения при запуске вам надо будет использовать специальную функции ParamStr:
В общем выглядит это примерно так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
Var
  ibi: TIniFile;
begin
 if ParamCount = 0 then Exit;
 ibi := TIniFile.Create(ParamStr(1));
 Edit1.Text := ibi.ReadString('Data','Edit1','');
 Edit2.Text := ibi.ReadString('Data','Edit2','');
 ibi.Free;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var
  ibi: TIniFile;
begin
 ibi := TIniFile.Create(Copy(ParamStr(0),1,Length(ParamStr(0))-3)+'ibi');
 ibi.WriteString('Data','Edit1',Edit1.Text);
 ibi.WriteString('Data','Edit2',Edit2.Text);
 ibi.Free;
end;
Что касается иконки, то присвойте вашему приложению свою иконку и при ассоциации вашего файла с данными она будет использована.
Спасибо, не смогли бы вы в код вписать подробные коментарии к строкам. Буду очень благодарен.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter