Поиск и замена

Не работает поиск и замена.

Имеется многострочный текст, в которое вставлена ссылка на другой текст, дальше есть фрагмент текста без ссылок.

При попытке заменить текст, который без ссылок, ничего не получается.

То есть он ищется, но замена не срабатывает.

Тэги темы:

Ответы

  • Обратите внимание что в окне поиска найденный текст отображается серым цветом. Если не ошибаюсь то необходимо сбросить форматирование текста и тогда замена будет срабатывать.

  • Олег111
    отредактировано October 2024

    Да, текст выделяется серым.

    Сброс форматирования командой PR не сработал - пишет, что нет подходящих объектов.

    При сбросе форматирования утилитой SMT слетает ссылка на текстовый объект, а она нужна для работы.

  • К сожалению, действительно поле "убивается". Хотя в утилите есть галочка специально для полей…

    Попробуйте эту же утилиту запустить в автокаде. Очень интересен результат. Сам пока проверить не могу…

  • Автокад недоступен, импортозамещение, сами понимаете. :-)

  • Тогда вариант в два-три действия: временно скопировать эту ссылку в сторону и удалить из текста. Затем скинуть форматирование через SMT, произвести замену текста и снова вставить в нужное место ссылку. Других утилит по сбросу форматирования текста пока нет.

  • Удалось проверить в АС. Утилита работает.

    Чтобы сохранить поля и переносы строк, необходимо выставить следующие галочки

  • в NC 23.1 тоже работает.

  • А это очень хорошая новость! Были опасения, что не работает непосредственно в ядре. Поля там подтягиваются более заморочно, с использованием словарей. А так есть надежда, что будет допилено

  • У меня в 23.1 тоже режет поля…

    Не поделитесь вашей версией файла с утилитой SMT?

  • Можно попробовать провести замену текста с помощью макроса из Excel.
    Использую, если не работает команда "Найти" (*серым цветом).

  • А каким образом это окно можно вызвать в нанокаде?

    У меня версия 24.0.6447.4339.

  • doctorRAZ
    отредактировано October 2024

    Специально для такого случая прикрутил менюшки и панельки

    https://doctorraz.blogspot.com/2024/05/drztools-nanocad-mod.HTML

  • Public app As nanoCAD.Application
    Dim old_txt As String, new_txt As String
    Dim wrksht As Worksheet

    Sub NANO_SingleReplace()
    Set wrksht = ActiveWorkbook.Worksheets("Замена_текста")

    old_txt = wrksht.Cells(2, 1)
    new_txt = wrksht.Cells(2, 2)

    On Error Resume Next
    'получить запущенный нанокад
    Set app = GetObject(, "nanoCAD.Application.24.0")
    'если нет ни одного запущенного приложения Нанокад, получаем ошибку
    If Err.Number > 0 Then
    Err.Clear
    MsgBox ("NanoCAD 24.1 не запущен.")
    Exit Sub
    End If

    Call NANO_ReplaceText(app.ActiveDocument)

    MsgBox "Замена завершена", vbInformation, "Finished"

    End Sub

    Private Sub NANO_ReplaceText(doc As nanoCAD.Document)
    ' Замена текста:
    Dim ent As AcadEntity

    For Each ent In doc.ModelSpace
    If TypeOf ent Is AcadMText Or TypeOf ent Is acadText Then
    ent.TextString = Replace(ent.TextString, old_txt, new_txt)
    End If
    Next

    For Each ent In doc.PaperSpace
    If TypeOf ent Is AcadMText Or TypeOf ent Is acadText Then
    ent.TextString = Replace(ent.TextString, old_txt, new_txt)
    End If
    Next

    End Sub

  • В старом форуме я задавал вопрос о некорректной работе "Найти и заменить". Обещали исправить в следующих релизах. Вышло несколько версий. Вопроса об исправлении даже не стоит. Нужно сбрасывать форматирование текста :)))))
    Старый форум тоже недоступен, а там много чего интересного было.

  • Юра, но и в Автокаде тоже нельзя было найти и заменить форматированный текст, насколько я помню (хоть уже и забывать начал, т.к. перешли на Отечественное ПО). Здесь та же ситуация. Другое дело, что не всегда отрабатывает корректно даже после сброса форматирования (поля и ссылки могут не отрабатываться).