Автор Тема: сортировка файлов в каталоге  (Прочитано 8466 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
сортировка файлов в каталоге
« Ответ #15 : 25 Февраля 2005, 12:11:13 »
AnnA
вы сортируете строковую переменную... а ждете результата сортировки числовой... - этого не будет...

P.S. use strict; где???!!!!
And no religion too...

Оффлайн domashniy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
сортировка файлов в каталоге
« Ответ #16 : 25 Февраля 2005, 12:24:40 »
то АннА.
Для тестов я сделал отдельный кусок, куда вставил полностью ваш скрипт.
Как первый ваш варинат, так и второй не сортирует.
Может проблема в том что запускаю под Виндами ?

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
сортировка файлов в каталоге
« Ответ #17 : 25 Февраля 2005, 12:32:16 »
commander
ну что Вам сказать. ;) посмотрите код еще раз, что ли...
Цитировать
commander:
этого не будет

есть. ;)
приведите последовательность файлов для которой он бы не работал? с условием, что второе значение после точки есть цифра. (a.b.1.zip)

P.S. для строковой переменной функция сортировки выглядела бы так: sub by_n  { ... return ($aa cmp $ab); }
пока-пока. :)

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
сортировка файлов в каталоге
« Ответ #18 : 25 Февраля 2005, 12:37:33 »
AnnA
от того что я посмотрю код ещё раз ситуация не поменяеться... ибо написал он НЕ ВЕРНО...
And no religion too...

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
сортировка файлов в каталоге
« Ответ #19 : 25 Февраля 2005, 12:43:51 »
domashniy
всё поняла. .)
злая шутка форума. вдруг задумалась - почему у меня работает а у Вас нет. Всё просто, форум скушал слеши (как он это обычно делает).
сейчас попробую дать правильный код
в обоих случаях перед точкой в split ДОЛЖЕН БЫТЬ ОБРАТНЫЙ СЛЭШ вот так (/\\./,$b))[2]
пока-пока. :)

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
сортировка файлов в каталоге
« Ответ #20 : 25 Февраля 2005, 12:46:28 »
Цитировать
commander:
ибо написал он НЕ ВЕРНО...
и где же именно?
« Последнее редактирование: 25 Февраля 2005, 12:52:37 от AnnA »
пока-пока. :)

Оффлайн domashniy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
сортировка файлов в каталоге
« Ответ #21 : 25 Февраля 2005, 13:17:31 »
точно все правильно, это мой наверно косяк что не заметил такой простой вещи ;))
огромное спасибо все работает. вот как еще доделал для своих нужд, может что скажите как лучше

opendir (G,"$tmpdir") or die $!; @z=grep (/тутобратный слеш.zip/i,readdir G); closedir(G);
@x = sort by_n @z;
foreach (@x)
{
system `7za.exe e -o$tmplogs $tmpdir/$_`;
system `build.exe`;
}

sub by_n  { my $aa=(split(/\\./,$b))[2]; my $ab=(split(/\\./,$a))[2]; return ($aa <=> $ab); }

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
сортировка файлов в каталоге
« Ответ #22 : 25 Февраля 2005, 13:42:07 »
domashniy на самом деле это commander подметил неувязочку. код, хоть и правильный, написан был неправильно. Я уже пару лет, как пользуюсь этим способом, а тут мне вдруг говорят, что он неправильный. ну вот и вспылила малость. :)
пока-пока. :)

Оффлайн domashniy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
сортировка файлов в каталоге
« Ответ #23 : 25 Февраля 2005, 13:48:10 »
а что в нем неправильного ?

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
сортировка файлов в каталоге
« Ответ #24 : 25 Февраля 2005, 14:20:31 »
ну слэш же форум не показал. я и говорю - написан был неправильно. не верно отображён форумом. в результате получалось то, о чем совершенно справедливо заметил
Цитировать
commander:
вы сортируете строковую переменную... а ждете результата сортировки числовой

что дал мне лог, когда я скопировала свой же код из форума. т.е. сплит подавал на сорт не цифру а букву......
ну, в общем, «проехали». :)
пока-пока. :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28