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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 14:01   #1
elf01
Пользователь
 
Регистрация: 18.11.2011
Сообщений: 34
По умолчанию Сделать сортировку файлов по убыванию

Написать программу, в которой
1. Пользователь имеет возможность указать рабочий каталог.
2. Считывается информация о файлах, содержащихся в рабочем каталоге.
3. Пользователю выводится список файлов, который содержится в каталоге, отсортированный по убыванию размера файлов.

у меня всё готово, кроме сортировки, подскажите и напишите плиз код сортировки по убыванию мне для этой программы. Зарание спасибо!

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
StringGrid1->RowCount = 0;
AnsiString path = Edit1->Text+"*.*";
TSearchRec T;
if (FindFirst(path, faAnyFile, T) == 0)
{
do
{
int i = StringGrid1->RowCount - 1;
StringGrid1->Cells[0][i] = T.Name;
StringGrid1->Cells[1][i] = IntToStr(T.Size);
StringGrid1->RowCount++;
}
while (FindNext(T) == 0);
FindClose(T);
}
}
//---------------------------------------------------------------------------
elf01 вне форума Ответить с цитированием
Старый 29.04.2012, 14:27   #2
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

Код:
void TForm1::SortGridColumn( int iCol )
{
   int iRows = StringGrid1->RowCount;
   AnsiString sTemp;

   for( int i = iRows; i > 1; i-- )
   {
     for ( int j = 1; j < i; j++ )
     {
       if ( StringGrid1->Cells[iCol][j].ToIntDef(0) < StringGrid1->Cells[iCol][j-1].ToIntDef(0)  )
       {
         sTemp= StringGrid1->Rows[j]->Text;
         StringGrid1->Rows[j]->Text = StringGrid1->Rows[j-1]->Text;
         StringGrid1->Rows[j-1]->Text = sTemp;
       }
     }
   }
}
- для образца. Здесь по возрастанию.
nick42 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Через сортировку Шелла создать программу по убыванию Novenkaja Помощь студентам 3 29.03.2011 21:34
как задать сортировку по убыванию? Барби Помощь студентам 3 08.10.2008 13:42