|
Вопрос # 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|