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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2014, 14:00   #1
Vadik4
 
Регистрация: 05.06.2014
Сообщений: 4
Восклицание Сортировка файлов

Пишу курсовую по работе с файлами и папками. Вроде нашел код чуть доработал, но не могу разобраться с сортировкой сначала папки потом файлы. Сначала не стал замарачиваться показал преподу и тут он загнал в тупик. Поставил условия доработаю сортировку будет 4. бился так и не смог решить как отсортировать. Скинул проект. В написании использовал поиск файлов через winapi delphi (Win32_find_data)
Вложения
Тип файла: rar Temp.rar (59.9 Кб, 10 просмотров)
Vadik4 вне форума Ответить с цитированием
Старый 05.06.2014, 14:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://delphiworld.narod.ru/base/lv_...col_click.html
http://delphiworld.narod.ru/base/lv_custom_sort.html
http://delphiworld.narod.ru/base/listview_sort.html
Подходят эти?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2014, 22:15   #3
Vadik4
 
Регистрация: 05.06.2014
Сообщений: 4
По умолчанию

Не с сортировкой по алфавиту и по датам получается, но у меня например по алфавиту идут папки и файлы, причем в перемешку, а я хотел сделать как во всех проводниках сначала папки потом файлы и те и другие по алфавиту.
Vadik4 вне форума Ответить с цитированием
Старый 05.06.2014, 23:14   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Прогони 2 раза поиск. Сначала для папок (WFD.dwFileAttributes and faDirectory)=faDirectory, а потом для файлов (WFD.dwFileAttributes and faDirectory)<>faDirectory
Или лучше заноси файлы и папки в 2 отдельных списка, сортируй их там, а потом выводи их
eoln вне форума Ответить с цитированием
Старый 06.06.2014, 20:33   #5
Vadik4
 
Регистрация: 05.06.2014
Сообщений: 4
По умолчанию

Что не уж то нельзя как то проще?
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
WFD:WIN32_Find_Data;
HFile:THandle;
Attr,Path:String;
begin
 ListView1.Items.BeginUpdate;{Начинаем прорисовку}
 ListView1.Items.Clear;
 Path:=IncludeTrailingPathDelimiter('C:\Windows');{Добавляем '\' при его отсутствиии}
 HFile:=FindFirstFile(PChar(Path+'*.*'),WFD);{Ищем файлы только в указанном каталоге}
 if HFile<>INVALID_HANDLE_VALUE then {Проверяем отсутствие ошиьок}
  begin
   repeat
   if (WFD.dwFileAttributes and faHidden)<>2 then{Условие показыать\не показывать скрытые файлы}
    if StrPas(WFD.cFileName)<>'.' then
     with ListView1.Items.Add do
      begin
       if (WFD.dwFileAttributes and faDirectory)<>faDirectory then
        begin
         Caption:=WFD.cFileName;
         SubItems.Add(ExtractFileExt(WFD.cFileName));{Выделяем расширение}
         SubItems.Add('размер');{Размер файла}
        end else
         begin
          Caption:=(WFD.cFileName);{Имя папки}
          SubItems.Add('[Папка]');{Указываем что это папка}
          SubItems.Add('размер');
         end;
        SubItems.Add('Дата');{Время создания папки\файла}
        Attr:='----';
        if (WFD.dwFileAttributes and faArchive)<>0 then Attr[1]:='a';{Архивный}
        if (WFD.dwFileAttributes and faReadOnly)<>0 then Attr[2]:='r';{Только чтение}
        if (WFD.dwFileAttributes and faHidden)<>0 then Attr[3]:='h';{Скрытый}
        if (WFD.dwFileAttributes and faSysFile)<>0 then Attr[4]:='s';{Системный}
        SubItems.Add(Attr);{Атрибуты файла\папки}
      end;
      application.ProcessMessages;  { Чтобы форма не сильно тормозила во время поиска}
   until FindNextFile(HFile,WFD)<>True;
   Winapi.Windows.FindClose(HFile);
  end;
  ListView1.Items.EndUpdate;{Заканчиваем прорисовку файлов}
end;
Vadik4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Сортировка файлов WhiteBard Помощь студентам 0 29.01.2011 11:34
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32
Сортировка файлов Minus Общие вопросы Delphi 2 28.04.2009 12:49
Сортировка файлов DonLena Паскаль, Turbo Pascal, PascalABC.NET 1 19.04.2009 20:05