|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
MS Word Нужен скрипт для копирования с одновременной заменой части текста
Moderator
Конструктор (машиностроение)
Россия
Регистрация: 23.10.2006
Сообщений: 23,258
|
||
Просмотров: 11095
|
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
а этот файл - docx?
разбирать абзац можно легко с помощью регулярных выражений, но они не позволят так уж изящно увеличивать номер только с помощью движка регулярок - тут нужно программировать. В принципе, в ворде есть урезанный вариант регулярных выражений, можно поковырять в справке.. Файл должен быть именно вордовский? |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Как вариант
Нет |
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
Самое простое, могу сделать на C# экзешник, который будет нужным образом обрабатывать текстовый файл (если вордовские файлы не принципиальны, в принципе, можно и ворд, но мороки больше будет)
Можете приложить образец со скопированным один раз абзацем? |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Цитата:
Проблема в том, что текст заранее не известен и меняется от задачи к задаче Очень примерно это выглядит так: Код:
Код:
Имена файлов в пределах одного абзаца, соответственно, могут различаться (за исключением номера). Мне эта приблуда нужна для пакетного ремукса большого количества mkv (добавление/удаление дорожек, субтитров и т.п.) через консоль. Возможно, есть более прямой путь, но я пока его не обнаружил. |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
да
Цитата:
Цитата:
Нагуглил только http://forum.doom9.org/showthread.php?t=162639 , но, поскольку, по-программистки я не шпрехаю, мне не совсем понятно, что этот скрипт делает. Реальный пример командной строки могу выложить вечером, если надо. |
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
Солидворкер, в этом случае дополнительные грабли городить не имеет смысла. Нормально сделанный батник прекрасно решает проблему
Конструкция вида Код:
То бишь FOR /L %%i IN (1,1,100) прогоняет переменную %%i от одного до 100 с шагом в 1 (начало, шаг, конец) Конечно, батник можно улучшать и улучшать, делать его более универсальным и удобным. Но это по мере использования. Цитата:
|
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Код:
Крайне желательно, чтобы нули имели место быть. |
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
На самом деле задача, как мне кажется, состоит не в переборе числовых значений с подстановкой в пути, а просто в переборе существующих файлов по определённому шаблону (например, все *.mkv), и подстановке имён этих же файлов с определёнными изменениями (например, смена расширения на mks)
тогда всё значительно проще Код:
При этом будет подставлять вместо:
Приложил готовый батник, надо только поменять workPath на нужный |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Цитата:
|
|||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Тз какое то не внятное, может хотя бы результаты до и после покажешь, выделишь цветом, что должно получится, прям в вордовском файле...
И как скоро тебе это надо, а то у меня на следующей неделе только время вроде как появится....
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Цитата:
![]() Пример выкладываю, но подчеркиваю, что это простой случай, есть и более сложные варианты с большим количеством имен файлов. По результатам обсуждения переформулирую задачу. Нужен батник, который последовательно перебирает номера в именах файлов с сохранением лидирующих нулей. Видимо, такой подход будет оптимальным. |
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
Так акция разовая? Тогда предлагаю воспользоваться экселем и его прекрасной функцией "сцепить". Формируем первую строчку, после чего растягиваем вниз насколько надо. Справа результирующий столбец жирным - его копируем и вставляем в текстовый файл. Вуаля. Пример прилагается. 2 минуты и список из сотен позиций готов.
|
|||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Че то уж очень похже на структурирование существующей медиатеки...
Я б тут наверное воспользовался ДирЛистером+экселем.... Потом скопировал все в ворд.....
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Акция не разовая. Просто на данный момент накоплен определенный объем контента. В дальнейшем объем будет пополняться.
Типа того. bargool, Спасибо за идею, не допер про Эксель. Вечером опробую. Но, все-таки, возможно изменение переменной в скрипте с сохранением лидирующих нулей? |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Я в курсе, но мне список, как таковой, мало поможет
|
|||
![]() |
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Солидворкер
так потом его в экселе обрабатывай, сцепляй теги т.п. Это самый простой вариант, скрипт сделаю как только освобожусь...
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
Доделал лидирующие нули
Код:
дальше это вставляется в итоговое выражение с помощью !index! Последний раз редактировалось bargool, 21.11.2012 в 11:59. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Offtop: Леонид - ну не всеж в эту ветку смотрят - совершенно случайно нашел
В общем копипастишь весь текст в большое окно, пишешь суфикс, количество инкрементных копий и префикс (без них - будут обрабатываться все цифры), выделяешь нужный кусок строки (если не выделять то считает всю текущую строку целиком) и жмешь волшебную кнопку (она там одна) в общем по аналогии с картинкой. Offtop: Если это то, что надо, с Вас, на ближайшей пьянке культурной встрече, 0,05 беленькой с дубовым привкусом.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 21.11.2012 в 12:57. |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
bargool, батник не работает, возвращает ошибку
Код:
Цитата:
![]() bargool, кстати, не желаешь присоединиться к нам на следующей встрече? С меня пиво за труды в любом случае. ![]() |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Тут как с сусликами - курсор должен быть на обрабатывемой строке (или текст должен быть выделен), то есть "ткнуть им надо", дальше он все равно "там", просто может не мигать - но ОН(и) ЕСТЬ.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
Всё выглядит так, будто запускаешь код прямо в cmd, нет? Этот код должен запускаться именно в *.bat файле. Прикол в том, что переменные цикла в cmd определяются с 1-м знаком %, а в bat файлах - с двумя.
И откуда подставляется AppData перед set непонятно, видимо, вместо символа табуляции, который у меня там стоял. На всякий случай прикладываю батник, подправь, пожалуйста, пути и запусти его. Надо ж его добить, хоть и пришёл Дима_, со своей волшебной программой ![]() Я с удовольствием! Уже много лет порываюсь. |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Заработал, но наполовину. Ремуксер открывает файл на запись, но вместо выдирания субтитров тупо переходит к открытию следующего файла, и так до конца списка. Видимо, что-то преждевременно срабатывает...
|
|||
![]() |
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
![]() |
Цитата:
Тем не менее, попробуем добавить Код:
Код:
|
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
Первый файл обрабатывается корректно, потом открывается новое окно консоли, еще раз обрабатывается тот же файл, так 10 раз подряд. Потом процесс стопорится.
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Выравнивание текста по двум точкам. | Krieger | Готовые программы | 10 | 24.12.2011 16:02 |
нужен лисп с заменой текста | Rwb | LISP | 28 | 03.08.2008 23:57 |