Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм сортировки имен файлов 
:(
    Опции темы
Matematik
Дата 14.4.2006, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Подскажите пожалуйста алгоритм сортировки имен файлов как в Win XP.
т.е. НЕ ТАК
Код

f1
f10
f100
f101
f2

А вот так
Код

f1
f2
f10
f100

PM MAIL WWW ICQ   Вверх
Alexeis
Дата 14.4.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата

f1
f2
f10
f100

странная сортировка f10 идет после f2 smile


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Guedda
Дата 14.4.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Ну правильно... 10>2. Так надо тогда парсить строку, переводить в число, и сравнивать.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Alexeis
Дата 14.4.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Понял, формат строк будет такой же (в смысле число в конце имени)

Это сообщение отредактировал(а) alexeis1 - 14.4.2006, 11:21


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Guedda
Дата 14.4.2006, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(alexeis1 @ 14.4.2006, 12:06 Найти цитируемый пост)
по длинне имени что ли

Не только по длине, но и по старшей цифре.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Демо
Дата 14.4.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Matematik,

Либо сам реализуй алгоритм сортировки(примеры есть в демо-программах от борланда), либо в TStringList воспользуйся методом CustomSort


--------------------
    
PM MAIL ICQ Skype   Вверх
Alexeis
Дата 14.4.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



что-то типа такого - эта тема уже обсуждалась
пример я сохранил, а вот тему врядли найду
Код

function mysort(List: TStringList; Index1, Index2: Integer): Integer;
var
  i1, i2 : integer;
  s1, s2 : ansistring;
Begin
  s1 := List.Strings[Index1];
  s2 := List.Strings[Index2];
  if s1[1] > s2[1]
  then
    result := 1
  else
    if s1[1] < s2[1]
    then
      result := -1
    else
      Begin
        delete(s1,1,2);
        delete(s2,1,2);
        i1 := strtoint(s1);
        i2 := strtoint(s2);
        if i1 > i2
        then
          result := 1
        else
         if i1 < i2
         then
           result := -1
         else
           result := 0;
      end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var    
  sl: TStringList;    
begin    
  sl:=TStringList.Create;    
  sl.Assign(Memo1.Lines);    
  sl.CustomSort(mysort);
  Memo1.Lines.Assign(sl);
  sl.Free;
end;

Добавлено @ 13:57
Хотя вот и тема
http://forum.vingrad.ru/index.php?showtopi...p;hl=customsort


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0957 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.