Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Использование TKeyArrayFix для сортировки массива

From Wiki
Jump to: navigation, search
Article Metadata

Статья
Перевод:
truf
Последнее редактирование: hamishwillee (09 Dec 2011)

Следующий пример демонстрирует создание и сортировку массива структур. Сканируя директорию в поиске JPG файлов, мы будем добавлять в массив полный путь, размер и дату создания каждого найденного файла. После этого, массив будет отсортирован по дате создания файла.

  • .H
struct TFileDetails
{
public :
TFileName iFileName;
TInt64 iFileTime;
TInt iFileSize;
};
 
CArrayFixFlat<TFileDetails> *iGalFileArrayTemp; //объявление
  • .Cpp
iGalFileArrayTemp = new CArrayFixFlat<TFileDetails>(10); // создаем экземпляр



Сканируем директорию и получаем данные о файле. Используем GetDir(), чтобы получить отфильтрованный по расширению список содержащихся в директории файлов.

User::LeaveIfError(fileSession.GetDir(KCFileSpec,KEntryAttMaskSupported,ESortByDate,iDirListC));

где KCFileSpec:

_LIT(KCFileSpec,"C:\\Nokia\\Images\\*.jpg");




for (TInt i1=0;i1<iDirListC->Count();i1++)
{
TFileName iT1;
iT1.Copy(KCDirName);
 
iT1.Append((*iDirListC)[i1].iName);
 
TTime iTime;
iTime = (*iDirListC)[i1].iModified;
 
TFileDetails iFileDetails;
iFileDetails.iFileName.Copy(iT1);
iFileDetails.iFileTime = iTime.Int64();
iFileDetails.iFileSize = (*iDirListC)[i1].iSize;
 
 
iGalFileArrayTemp->AppendL(iFileDetails);
}


Вы можете просканировать несколько директорий. После этого, полученный массив можно отсортировать следующим образом:

TKeyArrayFix timeKey(_FOFF(TFileDetails,iFileTime),ECmpTInt64);	
iGalFileArrayTemp->Sort(timeKey);


В данном случае, массив был отсортирован по дате создания файла.

  • Удаление массива


if(iGalFileArrayTemp)
delete iGalFileArrayTemp;
This page was last modified on 9 December 2011, at 02:01.
209 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×