2012-04-08 4 views
0

Мне нужно отредактировать некоторый файл конфигурации, добавив новую строку в существующий файл, но не в конец файла, а где-то посередине вместо этого (в конце конкретного раздела)VBScript - как добавить новую строку после указанной строки

# section 1 description 
foo1 = bar1 
foo2 = bar2 

# section 2 description 
foo3 = c:\bar.cfg 
my_new_line = which_needs_to_be_appended_here 

# section 3 description 
foo4 = bar4 

Должен ли я использовать поиск и замену, как описано здесь:

http://blogs.technet.com/b/heyscriptingguy/archive/2005/02/08/how-can-i-find-and-replace-text-in-a-text-file.aspx

найти последнюю строку конкретного раздела и заменить его: сам + символ новой строки + my_new_line = which_needs_to_be_appended?

ИЛИ

может быть, есть более простой или более умный способ сделать то же самое (как найти последнюю строку конкретного раздела и использовать какой-либо метод, чтобы поместить мою новую строку сразу после этого)?

ответ

2

Как ваша задача добавить строку в раздел, и ваши данные, похоже, указывают, что разделы разделены двумя концами строк, используя Split(), что разделитель выглядит как хорошая стратегия, которая не полагается на знание последний ключ-значение пары из этого раздела:

Dim sAll : sAll = readAllFromFile("..\data\cfg00.txt") 
    WScript.Echo sAll 
    Dim aSects : aSects = Split(sAll, vbCrLf & vbCrLf) 
    aSects(1) = aSects(1) & vbCrLf & "fooA = added" 
    sAll = Join(aSects, vbCrLf & vbCrLf) 
    WScript.Echo "-----------------------" 
    WScript.Echo sAll 

выход:

========================= 
# section 1 description 
foo1 = bar1 
foo2 = bar2 

# section 2 description 
foo3 = c:\bar.cfg 

# section 3 description 
foo4 = bar4 

----------------------- 
# section 1 description 
foo1 = bar1 
foo2 = bar2 

# section 2 description 
foo3 = c:\bar.cfg 
fooA = added 

# section 3 description 
foo4 = bar4 

========================= 
+0

вид решение, которое я искал, спасибо :) –

+0

@ not.my.fault Не стесняйтесь, чтобы отметить ответы как принято, если это решение. –

Смежные вопросы