特定のテキストファイルを開き、特定の行を追加するVBScriptの作成を考えております。


詳細はあるテキストファイルを行単位で読み込みを行い、特定の行を追加するVBScriptの作成を
考えておりますが、追加する特定の行の行頭部分が既に存在した場合は、行の追加をしないような仕様としたいです。

当仕様のVBScriptについてサンプルを作成いただけないでしょか
または作成のヒントを頂けると幸いです。

・詳細

追加したい特定の行:「TEST:テストです。」
追加する特定の行の行頭:「TEST:」※行頭

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/03/12 18:55:18
  • 終了:2012/03/15 18:20:51

ベストアンサー

id:oil999 No.1

oil999回答回数1728ベストアンサー獲得回数3202012/03/12 19:56:14

ポイント500pt

詳細なコメントをありがとうございます。
修正したVBScriptを以下に回答しますので、お試しください。

  1. 特定のテキストファイル→変数sourに代入してください。
  2. 追加した結果のテキストファイル名→変数destに代入してください。このプログラムでは"hoge.txt"を読み込んで、文字列を追加した結果を"hoge.txt.txt"に書き出すようにしています。
  3. 追加する特定の行の行頭は、正規表現という方法で検索しており、変数patに代入しています。

Option Explicit

Dim sour, dest, buf
Dim pat, str

sour = "hoge.txt"        '読み込むテキストファイル
dest = sour & ".txt"     '出力テキストファイル"
pat  = "^TEST:"         '行頭パターン
str  = "TEST:テストです。"  '追加文字列

'正規表現パターンの設定
Dim re
Set re = new RegExp
re.IgnoreCase = True
re.Global = True
re.pattern = pat

Dim fs, fr, fw
Set fs = CreateObject("Scripting.FileSystemObject")
Set fr = fs.OpenTextFile(sour)
Set fw = fs.CreateTextFile(dest)

Dim flag
flag = True             '行追加の有無フラグ

Do Until fr.AtEndOfLine
    buf = fr.ReadLine
    If (re.Test(buf)) Then flag = False
    fw.WriteLine(buf)
Loop
If Flag Then fw.WriteLine(str)

Set re = Nothing
Set fw = Nothing
Set fr = Nothing
Set fs = Nothing
他3件のコメントを見る
id:oil999

詳細なコメントをありがとうございます。
回答欄のVBScriptを修正しましたので、お試しください。

2012/03/13 18:12:55
id:gocnia3

ありがとうございます。
目的のものが作成できました。
ありがとうございました。

2012/03/15 18:20:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません