1

Тема: Макрос для словарных строк

доброго всем времени суток.

есть словарный файл со строками такого типа
"Авантюрист"%искатель приключений,побродяга,проходимец,бродяга --

в некоторых строках вариант справа от % только один, например:
"Апельсин"%мандарин --

требуется
каждую строку, в которой есть запятые преобразовать в несколько строк с одним значением справа от %, типа:

"Авантюрист"%искатель приключений --
"Авантюрист"%побродяга --
"Авантюрист"%проходимец --
"Авантюрист"%бродяга --

причем в некоторых строках может быть в конце --, или  ---, или -А, или --А
эту концовкеу необходимо оставить

строки, где итак не было запятых - пропустить

то есть алгоритм я себе представляю так

1. искать строку, в которой есть хотя бы одна запятая

2. скопировать данную строку вниз
3. удалить содержимое от % до 1й "," включительно
4. если количество запятых 1, то вернуться на п.1
5. если количество запятых 2 или более, то удалить содержимое от 2й запятой до знака переноса строки или знаков " -" (пробел, минус), что раньше

6. скопировать изначальную строку вниз снова
7. удалить содержимое от % до 2й "," включительно
8. если количество запятых 2, то вернуться на п.1
9. если количество запятых 3 или более, то удалить содержимое от 3й запятой до знака переноса строки или знаков " -" (пробел, минус), что раньше

10. скопировать изначальную строку вниз снова
11. удалить содержимое от % до 3й "," включительно
12. если количество запятых 3, то вернуться на п.1
13. если количество запятых 4 или более, то удалить содержимое от 4й запятой до знака переноса строки или знаков " -" (пробел, минус), что раньше

и т.д.

цикл пока не закончатся запятые.

14. ищем следующую строку, где есть хотя бы одна запятая.


но к сожалению я не знаю языка программирования макросов ворд и не могу это все реализовать.
прошу помощи

может ли кто-то помочь с составлением такого макроса?

2

Re: Макрос для словарных строк

Тут Вам нужен немного другой алгоритм решения. Лучше прислать пару страниц файла для проверки, но всеже:
1. Идем по каждому аюзацу документа.
2. В каждом абзаце ищем знак "%", если он есть, то методом Split разделяем его на массив по знаку %. Тогда 1-е значение этого массива у нас будет основной термин, 2-е значение строка подтерминов, разделенных или не разделенных ",".
3. 2-е значение п.2 также методом Split разделяем на массив, но по знаку "," и получаем группу подтерминов от 1 до n.
4. У n-подтермина ищем знак "-" методом InStr и создаем строку от этого знака, до знака абзаца, это будет концовка.
Таким образом мы создали систему Термин-->Группа подтерминов-->Концовка.
5. Дальше собираем все системы в группу и создаем общий текст нужного нам вида.
6. Этот текст вставляем в новый документ. (Можно вместо текста сделать таблицу хоть в Word, хоть в Excel)
Но повторяю нужно посмотреть хотябы несколько страниц оригинала, так как Вы могли пропустить какие-нибудь нюансы влияющие на правильность работы программы. 98% пользователей так и делают, а потом получается "Ой, тута работает, а тута нет!!!" smile