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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2009, 13:15   #1
EaRLL
Пользователь
 
Аватар для EaRLL
 
Регистрация: 03.01.2009
Сообщений: 22
По умолчанию Данные о файлах поместить в TListView

В общем есть на форме компонент ListView, в нём есть колонки
Название | Дата создания
надо, что бы при нажатии на кнопку, происходило сканирование директории в которой лежит экзешник и в соответствующие поля заносилась информация о файле - Название и Дата создания.
EaRLL вне форума Ответить с цитированием
Старый 28.10.2009, 13:21   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Получить список файлов в ListView как в проводнике :

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  ListItem: TListItem;
  sr: tsearchrec;
  NewColumn: TListColumn;
begin
  NewColumn := ListView1.Columns.Add;
  NewColumn := ListView1.Columns.Add; // добавдяются колонки
  if FindFirst('*.*', faAnyFile - faDirectory - faVolumeId, sr) = 0 then
  begin
    ListItem := ListView1.Items.Add; // создается объект
    ListItem.Caption := sr.name;
    ListItem.SubItems.Add(inttostr(sr.size));
    ListItem.SubItems.Add(datetimetostr(FileDateToDateTime(sr.time)));
    while FindNext(sr) = 0 do
    begin
      ListItem := ListView1.Items.Add;
      ListItem.Caption := sr.name;
      ListItem.SubItems.Add(inttostr(sr.size));
      ListItem.SubItems.Add(datetimetostr(FileDateToDateTime(sr.time)));
    end;
    FindClose(sr);
  end;
end;
Время создания файла:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SearchRec: TSearchRec;
  Success: integer;
  DT: TFileTime;
  ST: TSystemTime;
begin
   Success := SysUtils.FindFirst( 'путь_к_файлу', faAnyFile, SearchRec );
   if ( Success = 0 ) and
      ( ( SearchRec.FindData.ftLastAccessTime.dwLowDateTime <> 0 ) or
      ( SearchRec.FindData.ftLastAccessTime.dwHighDateTime <> 0 ) )
   then
   begin
      FileTimeToLocalFileTime( SearchRec.FindData.ftCreationTime, DT );
      FileTimeToSystemTime( DT, ST );
      Memo1.Lines.Clear;
      Memo1.Lines.Add( 'Файл был создан:' );
      Memo1.Lines.Add( 'Year - ' + IntToStr( st.wYear ) );
      Memo1.Lines.Add( 'Month - ' + IntToStr( st.wMonth ) );
      Memo1.Lines.Add( 'DayOfWeek - ' + IntToStr( st.wDayOfWeek ) );
      Memo1.Lines.Add( 'Day - ' + IntToStr( st.wDay ) );
      Memo1.Lines.Add( 'Hour - ' + IntToStr( st.wHour ) );
      Memo1.Lines.Add( 'Minute - ' + IntToStr( st.wMinute ) );
      Memo1.Lines.Add( 'Second - ' + IntToStr( st.wSecond ) );
      Memo1.Lines.Add( 'Milliseconds - ' + IntToStr( st.wMilliseconds ) );
   end;
   SysUtils.FindClose( SearchRec );
end;
W0LF вне форума Ответить с цитированием
Старый 28.10.2009, 13:27   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

если воспользоваться примером из http://www.programmersforum.ru/showt...ighlight=findA
То полученные данные в Лист вносить так:
Код:
with ListView.items.ADD do begin
 caption:=s.name;
 SubItems.add(DateTimeToStr(s.Time));
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2009, 03:27   #4
Airou
Форумчанин
 
Регистрация: 09.04.2008
Сообщений: 151
По умолчанию

Цитата:
Сообщение от W0LF Посмотреть сообщение
Получить список файлов в ListView как в проводнике :

Код:
procedure TForm1.Button1Click(Sender: TObject);
...
  if FindFirst('*.*', faAnyFile - faDirectory - faVolumeId, sr) = 0 then
 ...
А как можно задать папку в которой будет происходить поиск?
Airou вне форума Ответить с цитированием
Старый 29.10.2009, 08:19   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

FindFirst('C:\папка в которой будет идти поиск\*.*',
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2009, 21:16   #6
ikot
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 56
По умолчанию

Думаю вам подойдет компонент shelltreeview или virtualshelltreeview. Там эти функции делает сам компонент. Во вторых компонент virtualshelltreeview намного быстрее стандартного treeview...
ikot вне форума Ответить с цитированием
Старый 27.10.2010, 21:25   #7
eltorna
 
Регистрация: 19.05.2010
Сообщений: 6
По умолчанию

а как бы сделать так, чтобы можно было работать с файлами, путь к которым содержит Unicode-символы?
Среда Delphi 7

Последний раз редактировалось eltorna; 28.10.2010 в 21:19.
eltorna вне форума Ответить с цитированием
Старый 27.10.2010, 23:18   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас какая версия Делфи?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.10.2010, 21:19   #9
eltorna
 
Регистрация: 19.05.2010
Сообщений: 6
По умолчанию

Среда Delphi 7
eltorna вне форума Ответить с цитированием
Старый 29.10.2010, 00:39   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

тогда вам тяжело будет
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инициализация TListView Oburec Компоненты Delphi 0 04.05.2009 00:30
TListView и TPanel goblinyara Компоненты Delphi 3 09.01.2009 23:53
Как из двух DBGridов, выбрав необходимые данные, поместить в другой DBGrid Самоучка БД в Delphi 19 09.12.2008 23:23
Цветные строки в TListView Johnson Компоненты Delphi 6 18.07.2008 15:07
Вопрос по TListView. madroller Компоненты Delphi 1 03.11.2006 04:35