0

既存のファイルに新しい行を追加して構成ファイルを編集する必要がありますが、ファイルの最後ではなく、代わりに途中(特定のセクションの最後)にあります

# 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?

また

同じことを行うためのより簡単で賢い方法があるかもしれません(特定のセクションの最後の行を見つけて、その直後に新しい行を配置するために何らかの方法を使用するなど)?

4

1 に答える 1

2

タスクはセクションに行を追加することであり、データはセクションが2つの行末で区切られていることを示しているように見えるため、その区切り文字でSplit()を使用することは、最後のKey-Valueを知ることに依存しない優れた戦略のように見えます。 -そのセクションのペア:

  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

=========================
于 2012-04-08T18:41:26.450 に答える