• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Брагин Коммандер 3 - Переименование/перемещение файлов без потери ссылок

Автор lavgirb, 23.06.24, 09:57:17

« назад - далее »

0 Пользователи и 4 гостей просматривают эту тему.

lavgirb

Сделал копию вала и заменил ссылку со старого вала на новый. Ссылка программой заменилась.
Но ссылка (путь) в переменной осталась прежней, на старый вал.
Предположительно, в переменой путь это просто текст, никак не связанный с путем к источнику ссылки.
Но это не точно.

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

СВ

Цитата: Валерий Изранов от 10.02.25, 12:50:16СВ, на форуме очень много людей, у которых нет К22.
Сохраните Вал и Втулку хотя бы в К20.
- Сама-сама-сама!
(Ссылка переменной одного файла на переменную другого файла - это одно из простейших действий, которое должен знать человек, использующий параметризацию. ПС: К великим программистам это не относится.)
+ Благодарностей: 1

IgorT

Цитата: lavgirb от 10.02.25, 13:15:39Сделал копию вала и заменил ссылку со старого вала на новый. Ссылка программой заменилась.
Но ссылка (путь) в переменной осталась прежней, на старый вал.
Предположительно, в переменой путь это просто текст, никак не связанный с путем к источнику ссылки.
Но это не точно.

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

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


lavgirb

Не точно написал.
Ссылка в переменной осталась старой, с Вашим путем.
То есть, когда я открыл втулку, путь в переменной был старый, Ваш.
Вручную поменять путь у меня не получилось.

А во втулке ссылка на копию вала да, заменилась.

lavgirb

Цитата: IgorT от 10.02.25, 13:30:33Неприятность в том, что Компас не позволяет редактировать набор символов в ссылке на переменную в другой модели.
Он сбрасывает редактирование при выходе из ячейки.
Можно изменить ссылку только посредством удаления поломанной ссылки и создание новой ссылки...  :(
Понял.
Программно это сделать, наверное, не трудно, но я это не делал.

IgorT

Цитата: lavgirb от 10.02.25, 13:34:04Понял.
Программно это сделать, наверное, не трудно, но я это не делал.
Если это удастся сделать, то это будет замечательно!

Toptotal

Цитата: Andreych от 23.12.24, 13:16:49Спасибо, попробовал, но тоже не заработало. Пример моделей отправил в личку.
ссылки ищет прекрасно ТС и галку поставь поиск с текстом utf8/16  и найтет текст искомый а что там все равно ссылка или имя файла или папки в пути

СВ

 Кстати, ФанатуТотала это дело - как два пальца ... ? Я правильно понимаю?
Надеюсь, не проблема переименовать эти два файла и чтобы Ссылка одного файла на другой переименовалась АВТОМАТИЧЕСКИ? Т.е. - НИКАКИХ РУЧНЫХ действий: задал новое Обозначение/Наименование, нажал "Переименовать" и всё - создалась пара совместно работающих деталей.
+ Благодарностей: 1

IgorT

Цитата: СВ от 10.02.25, 14:51:18Кстати, ФанатуТотала это дело - как два пальца ... ? Я правильно понимаю?
Надеюсь, не проблема переименовать эти два файла и чтобы Ссылка одного файла на другой переименовалась АВТОМАТИЧЕСКИ? Т.е. - НИКАКАХ РУЧНЫХ действий: задал новое Обозначение/Наименование, нажал "Переименовать" и всё.
Да! Пусть покажет, как средствами ТС изменить ссылки на переменные. Устыдимся наших скудных знаний Компаса и ТСа!

СВ

 Игорь, давайте без шуток. Вы зря недооцениваете Фаната!

IgorT

Цитата: СВ от 10.02.25, 15:03:16Игорь, давайте без шуток. Вы зря недооцениваете Фаната!
Да какие шутки?! Тут дело серьезное. Пусть научит нас как ТСом ссылки на переменные переименовывать, мы ему благодарны будем. Разве не так?

СВ

 Возразить нечего! (Но и надеяться - тоже НЕЧЕГО. Насколько помню, Фанат практически никогда ничего не говорит, кроме: - Есть в ТС такой плагин (охренительный), что сам всё делает ...)

Toptotal

Цитата: СВ от 10.02.25, 14:51:18Кстати, ФанатуТотала это дело - как два пальца ... ? Я правильно понимаю?
Это делается средствами АПИ в идеале. вроде самый продвинутый это Slaviation плагин, а Andreych как то не замарачиваеться функционалом.
Решения 3
1. ТС есть инструмент группового переименования и использования плагина в качестве инструмнта данных он переименует фаил, но ссылки в нем должен уже средствами АПИ делать плагин. Это к автором плагинов лучше уточнять.
2. WCX плагин перименует в содержимом файла текст который нужно. Там есть уже палгин по изменению содержимого в файле. Вот это бы сделали плагино писатели.
3. Скрипт
Используем vbs-скрипт:
Код:   

    '====================================================
    ' Замена текста в файлах с помощью рег. выражений
    '
    ' Параметры:
    ' {текст для поиска} {текст для замены} {файл-список}
    '====================================================
    Option Explicit
    Dim FSO, WSH, F, FF, List, Str1, Str2, Errors
    Set FSO    = CreateObject("Scripting.FileSystemObject")
    Set WSH    = CreateObject("WScript.Shell")
    Set Errors = CreateObject("Scripting.Dictionary")
    With WScript
      Str1 = .Arguments(0)
      Str2 = .Arguments(1)
      FF   = .Arguments(2)
    End With
    List = Split(FSO.OpenTextFile(FF).ReadAll, vbNewLine)

    On Error Resume Next
    For Each F In List
      Main F, Str1, Str2
      If Err.Number > 0 Then
        Errors.Add F, Err.Description
        Err.Clear
      End If
    Next
    On Error GoTo 0

    If Errors.Count > 0 Then MsgBox JoinErr(Errors), 0, "Замена текста в файлах с помощью рег. выражений"

    Set Errors = Nothing
    Set WSH    = Nothing
    Set FSO    = Nothing
    WScript.Quit 0

    Sub Main(pPath, pStr1, pStr2)
      Dim lText, lPath
      If pPath <> "" Then
        lPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
        If FSO.FileExists(lPath) Then
          If FSO.GetFile(lPath).Size > 0 Then
            lText = FSO.OpenTextFile(lPath, 1, False, 0).ReadAll
    '        MsgBox lText
            lText = RegExpReplace(lText, pStr1, pStr2)
            FSO.OpenTextFile(lPath, 2).Write lText
          End If
        End If
      End If
    End Sub

    Function JoinErr(pDic)
      Dim lKey
      For Each lKey In pDic
        JoinErr = JoinErr & vbNewLine & _
                  "Файл """ & lKey & """ - " & pDic(lKey)
      Next
      JoinErr = "Для следующих файлов операция завершена с ошибками:" & vbNewLine & JoinErr
    End Function

    'Функция замены с помощью регулярных выражений
    Function RegExpReplace(pText, pFindStr, pNewStr)
      With New RegExp
        .Pattern      = pFindStr
        .IgnoreCase   = True
        .Global       = True
        RegExpReplace = .Replace(pText, pNewStr)
      End With
    End Function


Скрипт обрабатывает выделенные файлы или файл под курсором.

Кнопка для твоего случая:
Цитата:   
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\RegExpReplace.vbs
"^([ \[$]*)(.+\.)[^\.]*$" "YOURPREFIX$2" %L
shell32.dll,68
Хитрая замена текста

-1


[ \[$]в квадратных скобках указаны символы, которые могут быть в начале строки. Для указания некоторых специальных символов (например, символов квадратных или фигурных скобок) перед символом необходимо указать "\"
YOURPREFIX - Новый текст в начало строки.

СВ

 Вижу, на 99% всё сделано. Осталось нажать кнопку и убедиться - работает.

lavgirb

Цитата: IgorT от 10.02.25, 13:30:33Неприятность в том, что Компас не позволяет редактировать набор символов в ссылке на переменную в другой модели.
Он сбрасывает редактирование при выходе из ячейки.
Можно изменить ссылку только посредством удаления поломанной ссылки и создание новой ссылки...  :(
У меня КОМПАС работает так.
Если выделить переменную со старой ссылкой и в контекстном меню выбрать Ссылка, то можно указать новую ссылку взамен текущей.
Не удаляя старую ссылку, а просто заменяя ее на новую указанную.

СВ

Цитата: lavgirb от 10.02.25, 17:24:29Если выделить переменную со старой ссылкой и в контекстном меню выбрать Ссылка, то можно указать новую ссылку взамен текущей.
Не удаляя саму переменную и не создавая ее вновь.
Так это одно и то же ДЕЙСТВИЕ В ПРИНЦИПЕ, только сказанное разными словами.
указать новую ссылку взамен текущей = изменить ссылку
 удалить переменную и создать ее вновь= изменить ссылку

lavgirb

Цитата: СВ от 10.02.25, 17:27:18Так это одно и то же ДЕЙСТВИЕ В ПРИНЦИПЕ, только сказанное разными словами
Не спорю. Хотя удалить и создать не равно заменить.

IgorT

Цитата: lavgirb от 10.02.25, 17:28:46Не спорю. Хотя удалить и создать не равно заменить.
Ну это не столь важно. Важно то, что ссылку заменой символов не получается изменить... Или получается средствами АПИ?

lavgirb

Цитата: IgorT от 10.02.25, 19:36:37Ну это не столь важно. Важно то, что ссылку заменой символов не получается изменить...
Зачем заменой символов, когда тут же из контекстного меню меняется вся ссылка вместе с символами.

Цитата: IgorT от 10.02.25, 19:36:37Или получается средствами АПИ?
Не знаю.


lavgirb

Настроил показ всех ссылок.
Увидел много интересного внутри, чего не видно снаружи.)

В следующей версии добавлю показ всех ссылок.