Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2013, 07:47   #1
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
По умолчанию Как сократить текст в Word'e по следующему алгоритму?

Всем привет!
В общем ситуация следующая. Имеется текст типа:


На планете Земля жители города Эн... Любили друг друга

Строк такого типа большое количество (порядка 10 тысяч в одном документе).

Нужно сократить текст по следующей схеме:

1. Каждое слово, состоящее более, чем из одной буквы, должно сократиться до одной первой буквы этого же слова с точкой в конце этой буквы.
2. Все, что выделенно полужирным начертанием/курсивом/подчеркнуто до многоточия, также подлежит сокращению.
3. Предлоги, сотоящие из одной буквы, остаются как есть, т.е. точки после них не должно быть.
4. Если первая буква в слове заглавная, тогда она и остается таковой, но точка после неё также ставится.
6. Если первая буква в слове маленькая, тогда она и остается таковой и после неё также ставится точка.
5. Слова, прописанные через дефис (например "кто-то", "какой-либо" и т.д.), нужно сократить по следующему принципу: "кто-то" - "к-т", "какой-либо" - "к-л", "во-первых" - "в-п".
6. И, если представляется возможным: в каждой такой строке, если имеется после многоточия более двух слов, выделенных полужирным начертанием, тогда эти слова тоже подлежат сокращению, указанному в п.1.

Примечание: Римские и арабские цифры, уже сокращенные слова ("т.", "а.", "Ж."), а также какие-либо другие символы сокращению не подлежат.

Кто чем сможет помочь?

Последний раз редактировалось duh96; 22.02.2013 в 07:52.
duh96 вне форума Ответить с цитированием
Старый 22.02.2013, 09:16   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

duh96, обрабатывать нужно весь текст в документе или только абзацы, которые представляют собой фразу: "На планете Земля жители города Эн... Любили друг друга"?

Или нужно обрабатывать определённый текст? Тогда как узнать, какой текст обрабатывать, а какой текст - не надо обрабатывать.

Последний раз редактировалось Скрипт; 22.02.2013 в 09:18.
Скрипт вне форума Ответить с цитированием
Старый 22.02.2013, 16:11   #3
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
По умолчанию Как сократить текст в Word'e по следующему алгоритму?

Скрипт, Да, обработать нужно весь документ, который, собственно, и состоит из таких строк. Каждая такая строка являет собой абзац, то есть одна строка отделена от последующей Enter'ом.

А само содержание этих строк исключительно разное, например:


На планете Земля жители города Эн... Любили друг друга
Любовь приходит через... Знания
Знания формируют... Ответственность
Чем больше ты Знаешь, тем меньше... Страдаешь

Ну, в общем, таких строк около 10 тысяч. Все разные. Весь документ обрабатывается по одному и тому же сценарию.

Последний раз редактировалось duh96; 22.02.2013 в 16:12. Причина: Визуальная коррекция
duh96 вне форума Ответить с цитированием
Старый 22.02.2013, 16:21   #4
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Цитата:
duh96: 5. Слова, прописанные через дефис (например "кто-то", "какой-либо" и т.д.), нужно сократить по следующему принципу: "кто-то" - "к-т", "какой-либо" - "к-л", "во-первых" - "в-п".
т.е. берётся первая буква из первой части слова, первая буква из второй части слова и между двумя буквами ставится дефис. Так?

Последний раз редактировалось Скрипт; 22.02.2013 в 16:29.
Скрипт вне форума Ответить с цитированием
Старый 22.02.2013, 16:25   #5
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Цитата:
duh96: 6. И, если представляется возможным: в каждой такой строке, если имеется после многоточия более двух слов, выделенных полужирным начертанием, тогда эти слова тоже подлежат сокращению, указанному в п.1.
т.е. нужно обрабатывать только первое предложение каждого абзаца? А второе предложение нужно обрабатывать:
  1. если во втором предложении текст жирный;
  2. если во втором предложении больше двух слов?
Скрипт вне форума Ответить с цитированием
Старый 22.02.2013, 19:12   #6
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
По умолчанию Как сократить текст в Word'e по следующему алгоритму?

Цитата:
Сообщение от Скрипт Посмотреть сообщение
т.е. берётся первая буква из первой части слова, первая буква из второй части слова и между двумя буквами ставится дефис. Так?

Да.

Цитата:
Сообщение от Скрипт Посмотреть сообщение
т.е. нужно обрабатывать только первое предложение каждого абзаца? А второе предложение нужно обрабатывать:
  1. если во втором предложении текст жирный;
  2. если во втором предложении больше двух слов?
Да.
Т.е. в данном случае второе предложение подразумевается под предложением, которое идет после многоточия и выделено жирным шрифтом. Cкажем так, по умолчанию оно уже выделено жирным.


ДО: На планете Земля жители города Эн... Любили друг друга
ПОСЛЕ: Н. п. З. ж. г. Э. ... Л. д. д.

ДО: Любовь приходит через... Знания
ПОСЛЕ: Л. п. ч. ... Знания

ДО: Кто-то, идя в одном ботинке, не потерял второй, а... Нашёл первый
ПОСЛЕ: К-т, и. в о. б., н. п. в., а... Нашёл первый

Последний раз редактировалось duh96; 22.02.2013 в 19:15. Причина: Ипсравление грамматических ошибок
duh96 вне форума Ответить с цитированием
Старый 22.02.2013, 19:45   #7
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Вопрос 1

duh96, а во втором предложении нужно обрабатывать слова, прописанные через дефис?


Вопрос 2

Т.е. получается, что в каждом абзаце всегда будет два предложения. Первое предложение всегда заканчивается троеточием. Троеточие можно использовать в качестве ориентира начала второго предложения. Так?

Последний раз редактировалось Скрипт; 22.02.2013 в 19:57.
Скрипт вне форума Ответить с цитированием
Старый 22.02.2013, 20:26   #8
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
По умолчанию Как сократить текст в Word'e по следующему алгоритму?

Ответ на Вопрос 1:

Скрипт, да. Будем считать его одним словом. Например, если после троеточия идет "Где-то там", то данное слово "Где-то" ввиду отсутствия пробелов будет являть собой одно слово, а это значит, что данное предложение состоит из двух слов и сокращаться не будет. Т.е. любое слово через дефис является одним словом.
Но, в случае, если второе предложение будет состоять более, чем из двух слов, тогда "Где-то" должно сократиться по вышеописанному примеру ("Г-т")


Ответ на Вопрос 2:

Да. Троеточие будет служить ориентиром началу второго предложения. Здесь строго после после троеточия стоит пробел и потом начинается второе предложение (как в примере).

Последний раз редактировалось duh96; 22.02.2013 в 20:33. Причина: Более верная формулировка
duh96 вне форума Ответить с цитированием
Старый 22.02.2013, 20:35   #9
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

duh96, текст имеет какое-нибудь форматирование, кроме того, что второе предложение выделено жирным?

Просто есть два способа работы с текстом в Word-документе с помощью макроса:
  1. макрос работает непосредственно в самом документе. Это необходимо делать, чтобы сохранить оформление текста, например, размер шрифта, цвет шрифта и др., когда есть рисунки в документе;
  2. макрос берёт данные в оперативную память компьютера, там обрабатывает текст и вставляет обратно в документ, удаляя предыдущий текст. В этом случае форматирование будет потеряно. Но такой способ проще для написания макроса и может быть быстрее, если документ большой.

Какой пункт подходит для вашей задачи?
Скрипт вне форума Ответить с цитированием
Старый 22.02.2013, 20:50   #10
duh96
Пользователь
 
Регистрация: 22.02.2013
Сообщений: 18
По умолчанию Как сократить текст в Word'e по следующему алгоритму?

Скрипт, конечно будет лучше, если имеется возможность реализовать задачу путём, описанным в пункте 1.
Форматирование текста лучше оставить без изменений.
duh96 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сократить код Вадим12091965 Microsoft Office Excel 6 28.10.2012 11:04
Текст программы по алгоритму(с подзадачами) на Delphi 7 smokergo Помощь студентам 0 09.06.2012 15:49
Как сделать что бы макрос переходил к следующему циклу sersh1 Microsoft Office Excel 27 25.09.2011 06:58
Как передать фокус следующему по TabOrder'у элементу? TwiX Общие вопросы Delphi 5 11.02.2010 21:44
Как сократить формулу ruavia3 Microsoft Office Excel 18 22.04.2009 16:11