Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 Замена символов по условиям  [new]
No Spam
Member

Откуда:
Сообщений: 12
Ребят, всем привет и спасибо, что откликнулись и уделили время теме

Проблема в следующем: мне скинули текст, в котором оказалось, что ударения стали запятыми. Немного потыкавшись и повставляв вручную, я понял для себя, что алгоритм замены следующий:
  • если запятая между двумя буквами, то это ударение
  • если запятая идёт после буквы и перед точкой или запятой, то это ударение

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

    Сам от любых программирований далёк. Подскажите, пожалуйста, скрипт, которым можно было бы провести данную замену ибо 578 страниц для ручного труда - это что-то слишком запредельное.

    Всем признателен за помощь и желаю удачной трудовой недели!
  • 17 сен 18, 17:00    [21677188]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    Казанский
    Member

    Откуда:
    Сообщений: 1307
    No Spam,
    Нужен файл-пример. А то непонятно даже о каком приложении речь.
    17 сен 18, 17:28    [21677220]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    Казанский
    Member

    Откуда:
    Сообщений: 1307
    кросс http://www.programmersforum.ru/showthread.php?t=322725
    17 сен 18, 20:06    [21677345]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    Akina
    Member

    Откуда: Зеленоград, Москва, Россия
    Сообщений: 18996
    В принципе один достаточно несложный регэксп...
    18 сен 18, 08:02    [21677591]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    Ребят, всех благодарю за уделённое время и приношу извинения, что сразу не указал.

    .doc(х)

    Файл прикладываю в аттаче

    К сообщению приложен файл (Пс 25.zip - 10Kb) cкачать
    22 сен 18, 05:08    [21682539]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    Прикладываю исходный и корректный варианты написания образца текста


    Предыдущее вложение можно удалить

    К сообщению приложен файл (Downloads.zip - 20Kb) cкачать
    22 сен 18, 05:22    [21682541]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    Akina,

    был бы признателен за помощь
    22 сен 18, 05:23    [21682542]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    iMrTidy
    Member

    Откуда:
    Сообщений: 742
    No Spam,

    Медленно, но верно:

    Sub FixCommas()
    On Error GoTo Catch
    
    Dim doc As Document
    Dim l As Long
    Dim sAfterCorrComma As String
    Dim iPos As Integer
    
    Application.ScreenUpdating = False
    sAfterCorrComma = " "
    Set doc = ActiveDocument
    With doc.Range
        For l = .Characters.Count - 1 To 2 Step -1
            If .Characters(l) = "," And InStr(sAfterCorrComma, .Characters(l + 1)) = 0 Then
                .Characters(l - 1) = .Characters(l - 1) & ChrW(769)
                .Characters(l).Delete
            End If
        Next
    End With
    
    Catch:
        Application.ScreenUpdating = True
    
    End Sub
    
    22 сен 18, 15:24    [21682682]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    Казанский
    Member

    Откуда:
    Сообщений: 1307
    Быстро и без макросов :)
    Ctrl+H, найти: ,([! ]) Заменить на: набрать на цифровой клавиатуре Alt+769 и \1 (будет отображаться только \1), Больше - Подстановочные знаки, Заменить все (можно сначала Найти далее - Заменить, чтобы убедиться, что замена работает правильно).
    23 сен 18, 13:48    [21683080]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    Казанский, благодарю за ответ. А как убрать лишний пробел, который ставится после символа с ударением?
    30 сен 18, 11:42    [21690296]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    Казанский,

    прикладываю файл.

    iMrTidy,

    благодарю. Запустил, но скрипт почему-то "повесил" Ворд :) Отпишусь что получится

    К сообщению приложен файл (test1.zip - 9Kb) cкачать
    30 сен 18, 11:52    [21690302]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    Казанский
    Member

    Откуда:
    Сообщений: 1307
    No Spam
    Казанский, благодарю за ответ. А как убрать лишний пробел, который ставится после символа с ударением?
    У меня не ставится пробел (Word 2007). Может Вы перед \1 пробел поставили?

    К сообщению приложен файл. Размер - 14Kb
    30 сен 18, 20:13    [21690533]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    iMrTidy
    Member

    Откуда:
    Сообщений: 742
    No Spam,

    Если документ большой, то займет время. Я вроде бы писал, что работает медленно, но верно.

    К сообщению приложен файл (ВХОДНОЕ ПЕСНОПЕНИЕПс 25.docm - 20Kb) cкачать
    30 сен 18, 22:05    [21690593]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    iMrTidy
    Member

    Откуда:
    Сообщений: 742
    No Spam,

    Да, и Вам предложили куда более оптимальный способ.
    30 сен 18, 22:07    [21690595]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    iMrTidy
    No Spam,

    Если документ большой, то займет время. Я вроде бы писал, что работает медленно, но верно.

    Больше 12 часов висел. В любом случае, благодарю за указанный вариант исполнения и уделённое время.
    2 окт 18, 10:39    [21692278]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    Казанский
    No Spam
    Казанский, благодарю за ответ. А как убрать лишний пробел, который ставится после символа с ударением?
    У меня не ставится пробел (Word 2007). Может Вы перед \1 пробел поставили?
    На том компе вроде 2010 стоит. Перепроверю ещё раз. Он как-то избирательно (я приводил примеры): в одном месте ставится, а в других - нет. Потому и не понял принцип простановки
    2 окт 18, 10:42    [21692283]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    Word 2007 оказался. Замена прошла спешно!

    Спасибо огромное!

    А символы со знаком ударения можно как-либо выделить болдом?
    7 окт 18, 11:35    [21697282]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    Казанский
    Member

    Откуда:
    Сообщений: 1307
    No Spam,
    вторым действием найти: (?Alt+769) , заменить на \1 , Формат - Шрифт - полужирный, подстановочные знаки, заменить все.
    В поле Найти будет отображаться (?) и над знаком вопроса можно заметить черточку.

    К сообщению приложен файл. Размер - 12Kb
    8 окт 18, 16:39    [21698370]     Ответить | Цитировать Сообщить модератору
     Re: Замена символов по условиям  [new]
    No Spam
    Member

    Откуда:
    Сообщений: 12
    Казанский,

    огромная благодарность! Всё получилось.
    18 ноя 18, 01:56    [21737237]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft Office Ответить