|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.11.2012, 20:45 | #1 | |
MS Word Нужен скрипт для копирования с одновременной заменой части текста
Moderator
Конструктор (машиностроение)
Россия
Регистрация: 23.10.2006
Сообщений: 22,997
|
||
Просмотров: 10422
|
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
а этот файл - docx?
разбирать абзац можно легко с помощью регулярных выражений, но они не позволят так уж изящно увеличивать номер только с помощью движка регулярок - тут нужно программировать. В принципе, в ворде есть урезанный вариант регулярных выражений, можно поковырять в справке.. Файл должен быть именно вордовский? |
|||
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 22,997
|
Как вариант
Нет |
|||
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
Самое простое, могу сделать на C# экзешник, который будет нужным образом обрабатывать текстовый файл (если вордовские файлы не принципиальны, в принципе, можно и ворд, но мороки больше будет)
Можете приложить образец со скопированным один раз абзацем? |
|||
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 22,997
|
Цитата:
Проблема в том, что текст заранее не известен и меняется от задачи к задаче Очень примерно это выглядит так: Код:
Код:
Имена файлов в пределах одного абзаца, соответственно, могут различаться (за исключением номера). Мне эта приблуда нужна для пакетного ремукса большого количества mkv (добавление/удаление дорожек, субтитров и т.п.) через консоль. Возможно, есть более прямой путь, но я пока его не обнаружил. |
|||
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 22,997
|
да
Цитата:
Цитата:
Нагуглил только 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
Россия
Сообщений: 22,997
|
Код:
Крайне желательно, чтобы нули имели место быть. |
|||
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
На самом деле задача, как мне кажется, состоит не в переборе числовых значений с подстановкой в пути, а просто в переборе существующих файлов по определённому шаблону (например, все *.mkv), и подстановке имён этих же файлов с определёнными изменениями (например, смена расширения на mks)
тогда всё значительно проще Код:
При этом будет подставлять вместо:
Приложил готовый батник, надо только поменять workPath на нужный |
|||
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 22,997
|
Цитата:
|
|||
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Тз какое то не внятное, может хотя бы результаты до и после покажешь, выделишь цветом, что должно получится, прям в вордовском файле...
И как скоро тебе это надо, а то у меня на следующей неделе только время вроде как появится....
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 22,997
|
Цитата:
Пример выкладываю, но подчеркиваю, что это простой случай, есть и более сложные варианты с большим количеством имен файлов. По результатам обсуждения переформулирую задачу. Нужен батник, который последовательно перебирает номера в именах файлов с сохранением лидирующих нулей. Видимо, такой подход будет оптимальным. |
|||
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
Так акция разовая? Тогда предлагаю воспользоваться экселем и его прекрасной функцией "сцепить". Формируем первую строчку, после чего растягиваем вниз насколько надо. Справа результирующий столбец жирным - его копируем и вставляем в текстовый файл. Вуаля. Пример прилагается. 2 минуты и список из сотен позиций готов.
|
|||
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Че то уж очень похже на структурирование существующей медиатеки...
Я б тут наверное воспользовался ДирЛистером+экселем.... Потом скопировал все в ворд.....
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 22,997
|
Акция не разовая. Просто на данный момент накоплен определенный объем контента. В дальнейшем объем будет пополняться.
Типа того. bargool, Спасибо за идею, не допер про Эксель. Вечером опробую. Но, все-таки, возможно изменение переменной в скрипте с сохранением лидирующих нулей? |
|||
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 22,997
|
Я в курсе, но мне список, как таковой, мало поможет
|
|||
|
||||
YngIngKllr Регистрация: 29.03.2005
СПб
Сообщений: 12,968
|
Солидворкер
так потом его в экселе обрабатывай, сцепляй теги т.п. Это самый простой вариант, скрипт сделаю как только освобожусь...
__________________
Работаю за еду. Working for food. Für Essen arbeiten. العمل من أجل الغذاء Працую за їжу. |
|||
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
Доделал лидирующие нули
Код:
дальше это вставляется в итоговое выражение с помощью !index! Последний раз редактировалось bargool, 21.11.2012 в 11:59. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Выравнивание текста по двум точкам. | Krieger | Готовые программы | 10 | 24.12.2011 16:02 |
нужен лисп с заменой текста | Rwb | LISP | 28 | 03.08.2008 23:57 |