Имена файлов с цифрами



  • Добрый день.
    Столкнулся с очередной фичей БАС :)
    Спарсил картинки с названием img_1, img_2, img_3 и т.д., но при парсинге БАС берёт картинки не по порядку (1,2,3), а 1, 10, 100 и т.д., я так понимаю это так в программировании принято, но простым юзерам-то что делать?

    Я так понимаю надо было задавать числа 0001, 0002, 0003?
    Только теперь у меня уже несколько сотен спарсено картинок и я их уже обработал.

    Как эту фичу победить в БАС?
    Пока ищу софт для массового переименования файлов.



  • @Habip это не фича баса. Это так везде(. В когда нормально это как раз погромист настроил. Сортирует именно так по умолчанию. Можно так как вы предложили, можно Список прогнать через sort() Текст ссылки
    По моему у баса в экшенах есть эта опция. Но учтите сорт и буквы тоже отсортирует, и это будет не алфавит как вы его понимаете.



  • @f0cus
    Спасибо, попробовал через экшен в БАС, но он сортирует 1, 10, 11, 12, ... 2, 20, 21 и т.д.
    Через код на js посмотрел, пока не понятно, но будем думать.

    А можно как-то средствами самого софта ещё как-то сделать?



  • @Habip said in Имена файлов с цифрами:

    @f0cus
    Спасибо, попробовал через экшен в БАС, но он сортирует 1, 10, 11, 12, ... 2, 20, 21 и т.д.
    Через код на js посмотрел, пока не понятно, но будем думать.

    А можно как-то средствами самого софта ещё как-то сделать?

    Аналогичной теме ещё суток нет
    https://community.bablosoft.com/topic/11242/сортировка-чисел-по-возростанию



  • @Habip sort() Значит неть штатного ну ладно. А вон @Fox указал ссыль на тему. Все это действо в выполнить код Пишете ваш массив равно и эту самую функцию сортировки. Вар @Fox а будет сортировать по возрастанию обратная сортировка по убыванию меняем минус на плюс. Метод на самом деле хороший. Им даже многомерные массивы можно сортировать. Главное не нажратца не запутаться где что и как сортируем))
    upd Иногда бывает так что число которое сортируется будет строкой, приходит число, но оно в кавычках, так бывает потому я например делаю так

    [[LIST]].sort(function(a,b){ 
      return parseInt(a) - parseInt(b)
    })
    // или float если у нас дроби 
    


  • @f0cus said in Имена файлов с цифрами:

    @Habip sort() Значит неть штатного ну ладно. А вон @Fox указал ссыль на тему. Все это действо в выполнить код Пишете ваш массив равно и эту самую функцию сортировки. Вар @Fox а будет сортировать по возрастанию обратная сортировка по убыванию меняем минус на плюс. Метод на самом деле хороший. Им даже многомерные массивы можно сортировать. Главное не нажратца не запутаться где что и как сортируем))
    upd Иногда бывает так что число которое сортируется будет строкой, приходит число, но оно в кавычках, так бывает потому я например делаю так

    [[LIST]].sort(function(a,b){ 
      return parseInt(a) - parseInt(b)
    })
    // или float если у нас дроби 
    

    Метод parseInt() здесь лишний, так как математическое действие (кроме сложения) преобразует строку в число



  • @Fox угу, скажи это после split() и до кучи если сортишь не элементы списка а значения объектов. Лучче перебдеть, чем потом ковыряться)) я пробовал
    Но в общем конечно, сравнить а и б не обязательно городить огород.



  • @f0cus said in Имена файлов с цифрами:

    @Fox угу, скажи это после split() и до кучи если сортишь не элементы списка а значения объектов. Лучче перебдеть, чем потом ковыряться)) я пробовал
    Но в общем конечно, сравнить а и б не обязательно городить огород.

    Чегось? Какая разница, после split() массив или сортируете объекты? Численное преобразование происходит в математических функциях и выражениях
    https://learn.javascript.ru/types-conversion#chislennoe-preobrazovanie



  • @Fox Попробуй в басе. Сортировать массив обьектов, и в них у тебя будут значения которые необходимо получить. И вот по ним сортить.
    делить наше все. Почему такая странная реакция я разбираться не стал, и просто все обернут в float там дроби были.
    upd версия 22 5 по моему. Ну давно было, но я сутки голову ломал что такое. С тех пор стараюсь не забывать
    upd2 еще похожее поведение наблюдалась когда я объекты предварительно для полного лога оборачивал в JSON.stringify при получении значений тож сортирока как то неоднозначно проводилась. Но я же писал выше бывает что работать надо не с тем что собрал сам а с тем что дали. и Там и цифры и строки.. В общем сутки бани мне мозги погрели))



  • @f0cus said in Имена файлов с цифрами:

    @Fox Попробуй в басе. Сортировать массив обьектов, и в них у тебя будут значения которые необходимо получить. И вот по ним сортить.
    делить наше все. Почему такая странная реакция я разбираться не стал, и просто все обернут в float там дроби были.

    что то я вас не понимаю, причём здесь объекты в принципе? Я вам про преобразование примитивов говорю.

    upd версия 22 5 по моему. Ну давно было, но я сутки голову ломал что такое. С тех пор стараюсь не забывать

    Версия BAS здесь не причём, метод sort() поддерживается с 1 реализации js

    17d5197b-7096-4692-b7f8-f71da75130f5-изображение.png
    https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/sort


    Кажется я понял в чём дело, почему у вас была проблема:

    Вар @Fox а будет сортировать по возрастанию обратная сортировка по убыванию меняем минус на плюс.

    Выше я упомянул, что математические действия преобразуют строку в число, кроме сложения. Строки между собой прекрасно складываются (склеиваются).
    Для сортировки по убыванию, нужно поменять местами переменные a и b

    [[LIST]].sort(function(a,b){ 
      return b - a
    })
    

    Либо в ваших дробях были дополнительные символы (например пробелы или запятые вместо точек)



  • @f0cus said in Имена файлов с цифрами:

    upd2 еще похожее поведение наблюдалась когда я объекты предварительно для полного лога оборачивал в JSON.stringify при получении значений тож сортирока как то неоднозначно проводилась. Но я же писал выше бывает что работать надо не с тем что собрал сам а с тем что дали. и Там и цифры и строки.. В общем сутки бани мне мозги погрели))

    Метод JSON.stringify() преобразует значение JavaScript в строку JSON
    https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify



  • @Fox
    offtop: Ты уже наверное можешь предоставлять услуги профессионального экстрасенса )))



  • @UserTrue said in Имена файлов с цифрами:

    @Fox
    offtop: Ты уже наверное можешь предоставлять услуги профессионального экстрасенса )))

    Надо попробовать что нибудь себе кастануть что ли.. Например угадать логин и пароль от чужого, забытого btc-кошелька с парой сотен битков...



  • @Fox ))


Log in to reply
 

  • 7
  • 10
  • 3
  • 3
  • 4
  • 5
  • 2
  • 2