Временно заменить значения в строке

У меня к вам очень простой вопрос, но я не могу найти его в Интернете. У меня есть список ArrayList(i), в котором я хочу заменить некоторые строки только одной строкой. После этой строки ее следует снова изменить. Это работает, но я хочу научиться делать это более эффективно. Я предполагаю, что мне нужен цикл только для строки «имя_файла», но я не уверен. Длина ArrayList каждый раз разная и не всегда содержит заменяемые строки, а только иногда.

    'REPLACE NAME
    ArrayList(i) = Replace(ArrayList(i), "NameOld1", "NameNew1")
    ArrayList(i) = Replace(ArrayList(i), "NameOld2", "NameNew2")
    
    finalName = PathCut & "XT\" & NumPart(initName) & "_" & partcode & " " & ArrayList(i) & " " & CodeNR & ExtNew

    'REPLACE NAME BACK
    ArrayList(i) = Replace(ArrayList(i), "NameNew1", "NameOld1")
    ArrayList(i) = Replace(ArrayList(i), "NameNew2", "NameOld2")

    swApp.CloseDoc ArrayList(i) & ".SLDPRT" 'Close the files

Я уверен, что должен быть более простой и чистый способ. Заранее спасибо!

Как насчет использования временной строки без замены в самом массиве? Этот укус вы можете использовать для создания имени файла.

Shrotter 26.08.2024 12:07

Что такое NumPart? Когда вы говорите о списке, вы имеете в виду массив? Если не уверены, как ваш код его загружает? Если массив, то заменить можно сразу, используя объединенный массив. Что-то вроде Dim strArr as StringstrArr=join(ArrayList, "|") затем ArrayList = split(Replace(Replace(strArr, "NameOld1", "NameNew1"), "NameOld2", "NameNew2"), "|"). Теперь у вас есть массив с замененными строками. Для этого вы можете использовать другой массив (arrRepl = ...). Если заменяемая строка не существует, ничего страшного не происходит.

FaneDuru 26.08.2024 12:51
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
2
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Введите новую переменную newStr и используйте вложенную функцию Replace, тогда вам не придется возвращать ее с помощью двух последних замен.

    Dim newStr As String
    newStr = Replace(Replace(ArrayList(i), "NameOld1", "NameNew1"), "NameOld2", "NameNew2")
    
    finalName = PathCut & "XT\" & NumPart(initName) & "_" & partcode & " " & newStr & " " & CodeNR & ExtNew

    swApp.CloseDoc ArrayList(i) & ".SLDPRT" 'Close the files

Другие вопросы по теме