|
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 27
|
||||||
Выделить, отсортировать и проверить на непрерывность номера из имён каталогов01.02.2016, 20:14. Показов 957. Ответов 13
Метки нет (Все метки)
В результате работы некоего софта в директории создается набор папок вида:
abcdefgh_10051vxyz bcdhgetyujh_10052vxyz qwefds_10053vxyz и т.д. всего от нескольких сотен до нескольких тысяч штук. Номера идут последовательно друг за другом с инкрементом. Нужно: - видеть весь массив номеров очищенный от первого и второго буквенных слагаемых, в колонку по возрастанию сверху вниз - пересчитать номера : слева от каждого номера - его порядковый номер начиная с 1 - проверять непрерывность номеров, т.е кажый номер начиная с 2го больше предыдущего на единицу, если нет - предупреждение В итоге должно получится: 1 10051 2 10052 ок 3 10053 ок 4 10055 Внимание пропущен номер! Пока решил только первую задачу, номера успешно выдергивает из имен, выводит в колонку и сортирует по возрастанию скрипт вида:
Ну и в идеале все это должно в файл писаться. Но для начала хотя бы в окне сделать.
0
|
||||||
| 01.02.2016, 20:14 | |
|
Ответы с готовыми решениями:
13
Оповещения в файловой системе, отловить изменения имён каталогов Вывод списка имён каталогов и поиск в этих каталогах файлов с определёнными расширениями |
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||||
| 01.02.2016, 21:17 | |||||||||||
|
reanimator133,
Дано: abcdefgh_10051vxyz bcdhgetyujh_10052vxyz qwefds_10053vxyz gfhytju_10055vxyz ethfkfdg_10056vxyz lkfgo_10059vxyz dfpotdsf_10060vxyz dogfiregfdv_10063vxyz
1 10051 Ok 2 10052 Ok 3 10053 Ok 4 10055 Внимание пропущен номер! 5 10056 Ok 6 10059 Внимание пропущен номер! 7 10060 Ok 8 10063 Внимание пропущен номер! Добавлено через 9 минут reanimator133, а это с сохранением в результатов в csv-файл:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 27
|
|
| 01.02.2016, 21:57 [ТС] | |
|
скрипт без сохранения в файл выдает ошибку:
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||
| 01.02.2016, 22:03 | ||||||
|
reanimator133, попробуйте так (изменил строку №4) и какая у вас версия PS?
1
|
||||||
|
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 27
|
|
| 01.02.2016, 22:16 [ТС] | |
|
вторая, тоже об этом подумал. Сейчас попробую поставить 3.0.
Win7 x32
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||
| 01.02.2016, 22:28 | ||||||
|
reanimator133, в 2.0 скорректированный вариант должен работать...
Я смотрю вы скрипт запускаете сразу в консоли, а это очень не удобно. Попробуйте использовать PowerShell ISE А пока, для консоли - вот всё в одну строчку:
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 27
|
|
| 01.02.2016, 22:38 [ТС] | |
|
Большое спасибо.
Заработал нескорректированный вариант после установки powershell версии 3.0. Не хотел ставится, гад, пока не установил framework 4.6.1.
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||||
| 01.02.2016, 22:43 | |||||||||||
|
reanimator133, В 3.0 упростили синтаксис и вместо:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 27
|
|
| 01.02.2016, 22:54 [ТС] | |
|
Ясно, спасибо за разъснение.
Можно чуть усложнить задачу: abcdefgh_10051vxyz bcdhgetyujh_10052vxyz qwefds_10053vxyz gfhytju_1005455vxyz ethfkfdg_10056vxyz lkfgo_10059vxyz gybbhunu_100606162vxyz Среди номеров изредка попадаются сдвоенные и строенные, т.е 10054 и 10055 как 1005455, 10060, 10061 и 10062 как 100606162. Как учесть такую особенность?
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||
| 02.02.2016, 00:42 | ||||||
|
reanimator133,
В каком диапазоне находятся "нормальные" номера? Всегда пятизначные? Сдвоенные и строенные - это всегда + одна или две пары из первых цифр нужного числа? Добавлено через 10 минут и может быть, например такой случай? 100990001 - 10099, 10100, 10101 Добавлено через 1 час 17 минут reanimator133, если просто взять папки из вашего "усложнённого" примера (пока вы не уточнили условия) - получилось так: abcdefgh_10051vxyz bcdhgetyujh_10052vxyz qwefds_10053vxyz gfhytju_1005455vxyz ethfkfdg_10056vxyz lkfgo_10059vxyz gybbhunu_100606162vxyz
2 10052 Ok 3 10053 Ok 4 10054 Ok 5 10055 Ok 6 10056 Ok 7 10059 Внимание пропущен номер! 8 10060 Ok 9 10061 Ok 10 10062 Ok Хотя уверен, что кто-нибудь предложит что-то поизящнее..
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 27
|
|
| 02.02.2016, 13:36 [ТС] | |
|
Номера в данный момент всегда пятизначные. Такой случай - быть может (100990001). Максимально бывают счетверенные номера. Спятиренных уже нет.
Разбивать сдвоенные-строенные-счетверенные номера нежелательно. Нужно чтобы они оставались в столбце: 1 10051 Ok 2 10052 Ok 3 10053 Ok 4 10054 Ok 5 10055 Ok 6 10056 Ok 7 10059 Внимание пропущен номер! 8 100606162 Ok 9 10063 Ok 10 10064 Ok 11 10065 Ok 12 10067 Внимание пропущен номер! Добавлено через 44 минуты Ну и в идеале, помимо основной колонки получить список пропущенных номеров, и сдвоенных-строенных-счетверенных. То есть так: 1 10050 Ok 2 1005152 Ok 3 10053 Ok 4 10054 Ok 5 10055 Ok 6 10056 Ok 7 10059 Внимание пропущен номер! 8 100606162 Ok 9 10063 Ok 10 10064 Ok 11 10065 Ok 12 10067 Внимание пропущен номер! Пропущеные номера: 1 10057 2 10058 3 10066 Объединённые номера: 1 1005152 2 100606162
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|
| 02.02.2016, 13:55 | |
|
reanimator133, в таком случае я пас, т.к. слишком трудоёмко...
Получается нужно учитывать очень много ситуаций, например такую 100990001 или такую 10097990001, или даже такую 19999000102, где имеется в виду, что 19999 20000 пропущено 100 номеров 20101 20102 + сортировать преобразованные номера для выявления пропусков, а затем в этой цепочке опять восстанавливать склеенные случаи...
0
|
|
|
0 / 0 / 0
Регистрация: 01.02.2016
Сообщений: 27
|
|
| 02.02.2016, 15:50 [ТС] | |
|
Все равно спасибо
Добавлено через 6 минут В склееных номерах пропусков быть не может. Такое невозможно: 19999000102, где имеется в виду, что 19999 20000 пропущено 100 номеров 20101 20102 Тут однозначная трактовка как: 19999 20000 20001 20002 Добавлено через 10 минут А если без склееных случаев: НЕ ТАК: 1 10050 Ok 2 1005152 Ok 3 10053 Ok 4 10054 Ok 5 10055 Ok 6 10056 Ok 7 10059 Внимание пропущен номер! 8 100606162 Ok 9 10063 Ok 10 10064 Ok 11 10065 Ok 12 10067 Внимание пропущен номер! Пропущеные номера: 1 10057 2 10058 3 10066 Объединённые номера: 1 1005152 2 100606162 А ВОТ ТАК: 1 10051 Ok 2 10052 Ok 3 10053 Ok 4 10054 Ok 5 10055 Ok 6 10056 Ok 7 10059 Внимание пропущен номер! 8 10060 Ok 9 10061 Ok 10 10062 Ok 10 10063 Ok 11 10064Ok 12 10065 Ok 13 10067 Внимание пропущен номер! Пропущеные номера: 1 10057 2 10058 3 10066 Объединённые номера: 1 10051,10052 2 10060,10061, 10062
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||||||||||
| 03.02.2016, 12:00 | ||||||||||||||
|
Кликните здесь для просмотра всего текста
abcdefgh_10051vxyz bcdhgetyujh_10052vxyz dfgdfgdfty_10064vxyz dghghtyuty_10097989900vxyz dsfgtrujgn_1010405vxyz ethfkfdg_10056vxyz gfhytju_1005455vxyz gsdggsdg_10063vxyz gybbhunu_100606162vxyz hjyurdg_10103vxyz lkfgo_10058vxyz qwefds_10053vxyz
Кликните здесь для просмотра всего текста
1 10051 Ok 2 10052 Ok 3 10053 Ok 4 10054 Ok 5 10055 Ok 6 10056 Ok 7 10058 Внимание пропущен номер! 8 10060 Внимание пропущен номер! 9 10061 Ok 10 10062 Ok 11 10063 Ok 12 10064 Ok 13 10097 Внимание пропущен номер! 14 10098 Ok 15 10099 Ok 16 10100 Ok 17 10103 Внимание пропущен номер! 18 10104 Ok 19 10105 Ok Пропущенные номера: 1 10057 2 10059 3 10065 4 10066 5 10067 6 10068 7 10069 8 10070 9 10071 10 10072 11 10073 12 10074 13 10075 14 10076 15 10077 16 10078 17 10079 18 10080 19 10081 20 10082 21 10083 22 10084 23 10085 24 10086 25 10087 26 10088 27 10089 28 10090 29 10091 30 10092 31 10093 32 10094 33 10095 34 10096 35 10101 36 10102 Объединённые номера: 1 :10097,10098,10099,10100 2 :10104,10105 3 :10054,10055 4 :10060,10061,10062 Добавлено через 18 часов 52 минуты Кликните здесь для просмотра всего текста
abcdefgh_10051vxyz bcdhgetyujh_10052vxyz dfgdfgdfty_10064vxyz dghghtyuty_10097989900vxyz dsfgtrujgn_1010405vxyz ethfkfdg_10056vxyz gfhytju_1005455vxyz gsdggsdg_10063vxyz gybbhunu_100606162vxyz hjyurdg_10103vxyz lkfgo_10058vxyz qwefds_10053vxyz
Кликните здесь для просмотра всего текста
1 10051 Ok 2 10052 Ok 3 10053 Ok 4 1005455 Ok 5 10056 Ok 6 10058 Пропущен номер! 7 100606162 Пропущен номер! 8 10063 Ok 9 10064 Ok 10 10097989900 Пропущен номер! 11 10103 Пропущен номер! 12 1010405 Ok Пропущенные номера: 1 10057 2 10059 3 10065 4 10066 5 10067 6 10068 7 10069 8 10070 9 10071 10 10072 11 10073 12 10074 13 10075 14 10076 15 10077 16 10078 17 10079 18 10080 19 10081 20 10082 21 10083 22 10084 23 10085 24 10086 25 10087 26 10088 27 10089 28 10090 29 10091 30 10092 31 10093 32 10094 33 10095 34 10096 35 10101 36 10102 Объединённые номера: 1: 10097,10098,10099,10100 2: 10104,10105 3: 10054,10055 4: 10060,10061,10062
0
|
||||||||||||||
| 03.02.2016, 12:00 | |
|
Помогаю со студенческими работами здесь
14
Проверить функцию на непрерывность Проверить непрерывность на множестве Проверить на непрерывность функцию Проверить на непрерывность функцию, заданную интегралом, зависящим от параметра Подсчитать число каталогов в родительском каталоге, затем напечатать их имена и номера индексных дескрипторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|