Как поменять местами такие абзацы?

Статус
Закрыто для дальнейших ответов.

MAO_the_Doom

Топикстартер
15 лет на форуме
Сообщения
2 408
Реакции
224
Есть текст типа такого как на образце, сверстанный двумя стилями:

Иванов Иван Иванович (Paragraph Style 1)
начальник Главного отдела (Paragraph Style 2)
Сидоров Афанасий Петрович (Paragraph Style 1)
специалист Второго отдела (Paragraph Style 2)

И так далее около 800 такаих вот пар.

Надо переставить их так, чтобы должность была перед именем-отчеством. Вот так:

начальник Главного отдела (Paragraph Style 2)
Иванов Иван Иванович (Paragraph Style 1)
специалист Второго отдела (Paragraph Style 2)
Сидоров Афанасий Петрович (Paragraph Style 1)

Как это сделать невручную (типа кут-пасте)?
 
Ответ: Как поменять местами такие абзацы?

Тупой метод решения проблемы
1. Преобразуем текст в таблицу - 2 столбца, так чтобы стиль 1 в первом столбце, стиль 2 во втором (подгоните текст без пробелов и т.д.)
2. Загоняем в любую программу баз данных
3. Делаем из нее отчет в нужном порядке (то есть наоборот)
4. Загоняем в индюка
5. Преобразовываем таблицу в текст
6. Обрабатываем текст Smart стайлами

Удачи...
 
Ответ: Как поменять местами такие абзацы?

Ну интересная мысля...
А ещё? Может скрипт какой есть?
 
Ответ: Как поменять местами такие абзацы?

Не скрипта не знаю... может кто и знает...
А откуда текст, может он изначально был в табличном виде?
 
Ответ: Как поменять местами такие абзацы?

Если надо тупо поменять соседние строки
в выделенном тексте то вот сценарий на VBS

Set myInDesign = CreateObject("InDesign.Application.CS2")
Set myDocument = myInDesign.ActiveDocument
Set myText = myDocument.Selection(1)
Set myParagraphs = myText.Paragraphs
For i = myParagraphs.Count\2 To 1 Step -1
Set myParagraph = myParagraphs((i-1) * 2 + 1)
Set myNextParagraph = myParagraphs.NextItem(myParagraph)
myNextParagraph.Move 1650812527, myParagraph
Next
 
Ответ: Как поменять местами такие абзацы?

Нет, текст не в табличном виде. И абзацы там с разным количеством строк.
 
Ответ: Как поменять местами такие абзацы?

Можно сделать в Ворде.
Нужно преобразовать текст в таблицу. Для этого нам надо, чтобы между должностью и фамилией была табуляция.
Делаем замену включив галку "Подстановочные знаки".
Искать ^13(*^13)
Менять ^9\1

Теперь преобразуете текст в таблицу и, используя буфер обмена меняете столбцы местами. Преобразуете таблицу обратно в текст и заменой меняете табуляцию обратно на абзацы.

Тоже самое можно сделать в ИнДизайне ЦС3, если разобраться с тамошними регулярными выражениями. Дерзайте.
 
Ответ: Как поменять местами такие абзацы?

Так сценарий тасует абзацы вне зависимости
от количества строк.
 
Ответ: Как поменять местами такие абзацы?

Спасиьбо всем, буду перегонять указанными табличными способами.
 
Ответ: Как поменять местами такие абзацы?

В СS3 можно стандартной заменой.
Маркеруем абзацы "спецсимволом" [@|#|$|%|&].
@Иванов Иван Иванович (Paragraph Style 1)
#специалист Второго отдела (Paragraph Style 2)

Заходим в замену в грипп :)
В поиске ставим
(^@.+\r)(^#.+\r)
В замене
$2$1
После удаляем "спецсимволы"
и все.

P.S.: Растановка "спецсимволов"
GREP
F: .+
FS:(Paragraph Style 1)
C: @$1
 
Ответ: Как поменять местами такие абзацы?

Glutton сказал(а):
Маркеруем абзацы "спецсимволом" [@|#|$|%|&].


Не по теме:
LOL 'cooll)'
 
Ответ: Как поменять местами такие абзацы?

Specialist сказал(а):
Ну... это все-же немного быстрее чем кут-пасте :)
Если кому интересен результат - то корректор вручную переколбасила текст где-то за часа полтора с перерывами на перекур :)
 
Ответ: Как поменять местами такие абзацы?

MAO_the_Doom сказал(а):
Ну... это все-же немного быстрее чем кут-пасте :)

Да я собственно не о том. А о том, что движок форума там смайлик воткнул. :)

Вручную это жесть! Что ж вы автозаменой-то не сделали?
 
Статус
Закрыто для дальнейших ответов.