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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.05.2012, 18:12
pylsar pylsar вне форума
Прохожий
 
Регистрация: 11.02.2012
Сообщения: 18
Репутация: 10
По умолчанию Сортировка файлов по дате в ComboBox

Код:
function CompareDates(List: TStringList; Index1, Index2: Integer): Integer;
 var
   d1, d2: TDateTime;
 begin
   d1 := StrToDate(List[Index1]);
   d2 := StrToDate(List[Index2]);
   if d1 < d2 then
     Result := -1
   else if d1 > d2 then Result := 1
   else
     Result := 0;
 end;

procedure TForm2.FormShow(Sender: TObject);
var
  SRList :Tstringlist;
  SR: TSearchRec;
  FindRes Integer;
begin
   SRList:= TStringList.Create;
  FindRes := FindFirst('С:\файлы\*.*', faAnyFile, SR);
  while FindRes = 0 do
    begin
     if (SR.Name <> '.') and (SR.Name <> '..') then
         SRList.Add(SR.Name);
         FindRes := FindNext(SR);
      end;
  FindClose(SR);
  try
    SRList.Assign(ComboBox1.Items);
    SRList.CustomSort(CompareDates);
    ComboBox1.Items.Assign(SRList);
  finally
    SRList.Free
  end;

Помогите решить задачку, накидал вот код сортировки, но в ComboBox ничего не отображается.
Может более простой способ существует сортировки по дате создания файлов ?
Ответить с цитированием
  #2  
Старый 01.05.2012, 20:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
  try
    SRList.Assign(ComboBox1.Items);
    SRList.CustomSort(CompareDates);
    ComboBox1.Items.Assign(SRList);
  finally
    SRList.Free
  end;

Выделенная строчка не настораживает?
Ответить с цитированием
  #3  
Старый 02.05.2012, 12:49
pylsar pylsar вне форума
Прохожий
 
Регистрация: 11.02.2012
Сообщения: 18
Репутация: 10
По умолчанию

настораживает... взял код с delhiworld http://delphiworld.narod.ru/base/sl_custom_sort.html - а там сортировка уже имеющегося списка в listboxe. А тут я накидал ерунду - функция сортировки даты, а в свой список добавляю названия файлов. Для начала решил попробовать взять время изменения файла и вывести его в listbox вот таким способом
Код:
if (SR.Name <> '.') and (SR.Name <> '..') then
         ListBox1.Items.Add(IntToStr(SR.Time));
         FindRes := FindNext(SR);
end;
получаю следующее значение
1081901072 в каком формате время написано так и не понял
на самом деле файл изменён 28 марта 2012 г., 16:00:30
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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