| 
| 
 | Вопрос # 5 708/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!есть такая проблема...нужно содержимое listbox при нажатии кнопки 'сохранить' сохранить в файл с именем выбранной даты в DateTimePicker
 к примеру выбирай дату в Datetimepicker 21.11.10 и при нажатии сохранить содержимое listbox сохраняется в файл 21.11.10
 нужно это реализовать не используя базы данных
 Примечание #1 (1 ноября 2011, 18:35): 
 
|  |   Вопрос задал: 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 (статус: Посетитель), 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 (статус: 3-ий класс), 2 ноября 2011, 17:05 [#5]:Казаков Николай Константинович: зачем здесь FindFirst/FindNext? Достаточно проверить существование файла на заданную дату. виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  
|   | Мережников Андрей (статус: Абитуриент), 2 ноября 2011, 21:49 [#6]:to Min@y при таком варианте загрузки всегда будет искать один и тот же файл - с датой, которая установлена в DateTimePicker при проектировании программы (при установке компонента на форму). |  
|   | 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |