Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 708

/ вопрос открыт /

Приветствую, уважаемые эксперты!
есть такая проблема...нужно содержимое listbox при нажатии кнопки 'сохранить' сохранить в файл с именем выбранной даты в DateTimePicker
к примеру выбирай дату в Datetimepicker 21.11.10 и при нажатии сохранить содержимое listbox сохраняется в файл 21.11.10
нужно это реализовать не используя базы данных

Примечание #1 (1 ноября 2011, 18:35):

Send2010 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Send2010 (статус: Посетитель)
Вопрос отправлен: 1 ноября 2011, 18:26
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Ну, в первом приближении, как-то так:

procedure TMainForm.SaveButtonClick(Sender: TObject);
var
  FileName: string;
begin
  FileName:= DateToStr(Datetimepicker.Date);
  // использование функции DateToStr() приведено в качестве примера.
  // так как региональные настройки на разных компах могут быть разными,
  // для формирования имени файла следует пользоваться DecodeTime() или
  // FormatDateTime() во избежание, так сказать, ахтунга. :)
  try
    ListBox.SaveToFile(FileName);
  except
    Application.MessageBox(PChar('Не могу сохранить файл "' + FileName + '".'),
                           PChar('Ошибка'), mb_Ok + mb_IconError);
  end;
end;
 
procedure TMainForm.FormCreate(Sender: TObject);
var
  FileName: string;
begin
  FileName:= DateToStr(Datetimepicker.Date);
  // использование функции DateToStr() приведено в качестве примера.
  // так как региональные настройки на разных компах могут быть разными,
  // для формирования имени файла следует пользоваться DecodeTime() или
  // FormatDateTime() во избежание, так сказать, ахтунга. :)
  if FileExists(FileName)
    then try
           ListBox.LoadFromFile(FileName);
         except
           ListBox.Clear(); // или ещё что-нибудь
         end;
end;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 2 ноября 2011, 08:30


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 3 ноября 2011, 08:08; участников в обсуждении: 5.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 1 ноября 2011, 19:23 [#1]:

Что конкретно не получается? В чем вопрос - сохранить содержимое или выбор имени файла? Кстати, использование точек в имени файла - не очень хорошая идея.
Send2010

Send2010 (статус: Посетитель), 1 ноября 2011, 19:58 [#2]:

в событии oncreat формы нужно реализовать поиск файла с именем сегодняшней даты и загрузки данных этого файла в listbox,а если нет такого файла,то оставить listbox чистым...не получается реализовть
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 1 ноября 2011, 20:07 [#3]:

почему именно в событии oncreate? Чем не устраивает, например, OnShow. И что конкретно не получается?

2 ноября 2011, 11:53: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А.

Казаков Николай Константинович

Казаков Николай Константинович (статус: 1-ый класс), 2 ноября 2011, 14:19 [#4]:

FindFirst( const Path: string; Attr: Integer; var F: TSearchRec): Integer Выделяет в памяти необходимые ресурсы для поиска в каталоге и шаблоне Path (например, c:\MyDir\*.*) файлов, удовлетворяющих шаблону и имеющих атрибуты Attr (см. FileSetAttr). При успешном завершении возвращает 0, в противном случае - код ошибки Windows. Результаты поиска заносятся в запись SearchRec. Из полей этой записи можно извлечь результаты: Time: Integer - время создания файла, Size: Integer - его размер, Attr: Integer - его атрибуты, Name - имя файла и некоторые другие.

FindNext( var F: TSearchRec): Integer Продолжает поиск, начатый функцией FindFirst. Если нашелся новый файл, возвращает 0, в противном случае - код ошибки Windows. Результаты поиска заносятся в запись SearchRec (см. FindFirs
bugmenot

bugmenot (статус: 3-ий класс), 2 ноября 2011, 17:05 [#5]:

Казаков Николай Константинович: зачем здесь FindFirst/FindNext? Достаточно проверить существование файла на заданную дату.
виконання програми розпочинається з того самого мiсця, де призупинилося.

Мережников Андрей

Мережников Андрей (статус: Абитуриент), 2 ноября 2011, 21:49 [#6]:

to Min@y при таком варианте загрузки всегда будет искать один и тот же файл - с датой, которая установлена в DateTimePicker при проектировании программы (при установке компонента на форму).
min@y™

min@y™ (статус: Доктор наук), 3 ноября 2011, 08:08 [#7]:

Цитата (Мережников Андрей):

при таком варианте загрузки всегда будет искать один и тот же файл - с датой, которая установлена в DateTimePicker при проектировании программы (при установке компонента на форму).

Ну хорошо. Тогда так:
procedure TMainForm.FormCreate(Sender: TObject);
var
  FileName: string;
begin
  FileName:= DateToStr(Date()); // <--- сегодняшняя дата
  // использование функции DateToStr() приведено в качестве примера.
  // так как региональные настройки на разных компах могут быть разными,
  // для формирования имени файла следует пользоваться DecodeTime() или
  // FormatDateTime() во избежание, так сказать, ахтунга. :)
  if FileExists(FileName)
    then try
           ListBox.LoadFromFile(FileName);
         except
           ListBox.Clear(); // или ещё что-нибудь
         end;
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:45
Выполнено за 0.04 сек.