|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Необходимо найти все строки которые начинаются с "download:"https:" и заканчиваются |
|
VBS/WSH/JS - [решено] Необходимо найти все строки которые начинаются с "download:"https:" и заканчиваются
|
Старожил Сообщения: 175 |
Профиль | Отправить PM | Цитировать Здравствуйте, нужна ваша помощь.
Есть текстовый файл сгенерированный программой, вид содержимого файла: {'title':'Эпизод 1', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0001-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0001/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0001-sd/playlist.m3u8', download:"https://x.anilibria.tv/get/3BdXdlP0bs4wlKyjQcXZpA/1557795967/mp4/8374/0001.mp4?download=Hitoribocchi no Marumaru Seikatsu-1-sd.mp4", 'id': 's1'}, {'title':'Эпизод 2', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0002-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0002/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0002-sd/playlist.m3u8', download:"https://x.anilibria.tv/get/ciP3toJ3rI3-x25Rqxxa0g/1557795967/mp4/8374/0002.mp4?download=Hitoribocchi no Marumaru Seikatsu-2-sd.mp4", 'id': 's2'}, {'title':'Эпизод 3', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0003-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0003/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0003-sd/playlist.m3u8', download:"https://x.anilibria.tv/get/2xTCA5dY7tiA634RtlXrTw/1557795967/mp4/8374/0003.mp4?download=Hitoribocchi no Marumaru Seikatsu-3-sd.mp4", 'id': 's3'}, {'title':'Эпизод 4', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0004-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0004/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0004-sd/playlist.m3u8', download:"https://x.anilibria.tv/get/Zgk0waIDnyzpgH4K3QM1hw/1557795967/mp4/8374/0004.mp4?download=Hitoribocchi no Marumaru Seikatsu-4-sd.mp4", 'id': 's4'}, {'title':'Эпизод 5', 'file':'[1080p]//de2.anilibria.tv/videos/ts/8374/0005-hd/playlist.m3u8,[720p]//de2.anilibria.tv/videos/ts/8374/0005/playlist.m3u8,[480p]//de2.anilibria.tv/videos/ts/8374/0005-sd/playlist.m3u8', Hitoribocchi no Marumaru Seikatsu-5-sd.mp4", =Hitoribocchi no Marumaru Seikatsu-5-sd.mp4", 'id': 's5'} Например чтобы были удалены только строки такого вида: Количество строк каждый раз разные.... |
|
------- Отправлено: 05:52, 12-05-2019 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать итак, выходные - прекрасное время для флейма, офтопиков и некропостинга :-)
Признаю: когда я писал про лёгкость операции сравнения, то заблуждался. В первую очередь я подразумевал оператор '===' из javascript. Но в vbs нет ничего подобного, да и строки там - не ссылочный тип. Впрочем, такой подход не сработает и в javascript - метод replace там всегда возвращает новую строку. В powershell объекты сравниваются по хэшу, но во-первых это не касается строк, во вторых он вычисляется не при создании объекта, а при вызове, поэтому всё равно отдельно перелопачивать весь массив данных. Что касается приведённых измерений, то Compare-Object, к сожалению, вообще здесь неприменим, как и оператор -eq - они выполняют регистронезависимое сравнение строк. Что к тому же очевидно дольше. Так что доступные скриптовые языки ни прямо, ни косвенно не говорят: была произведена замена или нет (не относится к современному JavaScript - там пишется LastIndex в объект RegExp). Костыльное решение этого вопроса - в качестве аргумента замены использовать не строку, а функцию: в PoSh это завезли только в версии 6.1: либо в более ранних PoSh использовать .NET класс: (в нашем конкретном случае счётчик не нужен, достаточно булевого флага: была_замена/не_было) Цитата YuS_2:
Эффективность считывания в память будет заметна только для определённого диапазона размеров: для мелких незаметно, в случае крупных - ОС всё равно задействует файл подкачки для освобождения оперативки, и мы возвращаемся к медленным дисковым операциям. И да, я осознаю, что блочные дисковые операции будут значительно быстрее, но такая оптимизация на мой взгляд нужна скорее для завершённых утилит, а не для скиптов, которые должно быть легко понять и поправить. |
|
Отправлено: 15:38, 26-05-2019 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1164
|
Профиль | Отправить PM | Цитировать Пара уточнений:
Цитата Busla:
Цитата Busla:
Но нам-то было интересно, в данном случае, не количество, а скорость... |
||
------- Отправлено: 22:00, 26-05-2019 | #32 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Цитата YuS_2:
Цитата YuS_2:
для скорости надо было заниматься оптимизацией операций чтения/записи |
|||
Отправлено: 00:20, 27-05-2019 | #33 |
Crazy Сообщения: 1164
|
Профиль | Отправить PM | Цитировать Цитата Busla:
Цитата Busla:
Цитата Busla:
Цитата Busla:
Повторюсь, мы не гнались за количеством, а практически стройным хором пели: "Не думай о секундах свысока!" Цитата Busla:
|
|||||
------- Отправлено: 07:57, 27-05-2019 | #34 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
этот скрипт получает данные от одной программы и преобразует их для другой задача/проблема дискового ввода-вывода тут возникает только у людей с пониженной компьютерной грамотностью |
|
Отправлено: 12:16, 27-05-2019 | #35 |
Crazy Сообщения: 1164
|
Профиль | Отправить PM | Цитировать Цитата Busla:
Цитата Iska:
Цитата Busla:
Цитата Busla:
|
||||
------- Отправлено: 13:21, 27-05-2019 | #36 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать YuS_2, если буквально, то при построчной обработке вы не можете ПЕРЕзаписывать файл, избегать нечего
если подробно - конец 31го комментария |
Отправлено: 15:55, 27-05-2019 | #37 |
Crazy Сообщения: 1164
|
Профиль | Отправить PM | Цитировать Цитата Busla:
|
|
------- Отправлено: 17:45, 27-05-2019 | #38 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Как из строки в .txt вывести символы "которые там обновляются"в другой .txt | Bombastig | Скриптовые языки администрирования Windows | 6 | 08-02-2014 04:54 | |
Интерфейс - [решено] Нет "стеклянного" эффекта при наведении на "Свернуть все окна" | aka_smile | Microsoft Windows 7 | 5 | 21-09-2012 11:49 | |
Не получается найти все выпуски "Хакер"+"спец"+"железо" | verdix | Хочу все знать | 5 | 29-11-2008 15:19 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 |
|