aaa.txtの内容(1行がファイル名とタイトルがコロンで区切られている)
--------------
bbb1.txt:title1
ccc2.txt:title2
ddd3.txt:title3
--------------
上位2行を読み込み、ファイル名からURLを生成して(http://xxx.com/text/bbb1.txt)
それぞれのサイト上の内容を読み込み(http://xxx.com/text/は固定)
bbb1.txtの内容
---------------
test111
test222
test333
----------------
ccc2.txtの内容
---------------
test444
test555
test666
----------------
各ファイルから「下位」2行を取得してファイルに保存するというVBスクリプトを
作りたいのですが、参考になるサイトはありますか?
また、参考サイトではなくサンプルソースでも大歓迎です。
出力結果:xxxcomout.txt
----------
【title1】
test222
test333
【title2】
test555
test666
-----------
急いで作ったのであまりスマートではありませんが、書いてみました。
作業用のディレクトリをデスクトップにしています。不都合あれば変えてください。
クォーテーションマーク等便宜上全角になっている部分は半角に直してください。
csturl = ”http://xxx.com/text/”
set xmlhttp = wscript.createobject(”Microsoft.XMLHTTP”)
Set Fs=WScript.CreateObject(”Scripting.FileSystemObject”)
set shl = wscript.createobject(”wscript.shell”)
’aaa.txt取得&ローカル保存
tempfile1 = shl.SpecialFolders(”Desktop”) & ”¥” & ”temp1.txt”
getsave ”aaa.txt”,tempfile1
’タイトル・ファイル名取得
set Inf = Fs.OpenTextFile(tempfile1)
temp = Inf.readline
record1 = split(temp,”:”,-1,vbtextcompare)
temp = Inf.readline
record2 = split(temp,”:”,-1,vbtextcompare)
Inf.close
’bbb1.txt取得&ローカル保存
tempfile2 = shl.SpecialFolders(”Desktop”) & ”¥” & ”temp2.txt”
getsave record1(0),tempfile2
’bbb1.txt 最終2件取得
set Inf = Fs.OpenTextFile(tempfile2)
do until inf.AtEndOfLine
f1l1 = f1l2
f1l2 = inf.readline
loop
inf.close
’ccc2.txt取得&ローカル保存
tempfile3 = shl.SpecialFolders(”Desktop”) & ”¥” & ”temp3.txt”
getsave record2(0),tempfile3
’ccc2.txt 最終2件取得
set Inf = Fs.OpenTextFile(tempfile3)
do until inf.AtEndOfLine
f2l1 = f2l2
f2l2 = inf.readline
loop
inf.close
’結果出力
set Ofl = Fs.CreateTextFile(shl.SpecialFolders(”Desktop”) & ”¥” & ”xxxcomout.txt”)
Ofl.WriteLine(”【” & record1(1) & ”】”)
Ofl.writeline(f1l1)
Ofl.writeline(f1l2)
Ofl.WriteLine(”【” & record2(1) & ”】”)
Ofl.writeline(f2l1)
Ofl.writeline(f2l2)
Ofl.close
fs.deletefile(tempfile1)
fs.deletefile(tempfile2)
fs.deletefile(tempfile3)
wscript.quit
sub getsave(p1,p2)
xmlhttp.open ”GET”, csturl & p1, false
xmlhttp.send()
txt = xmlhttp.responseText
set Ofl = Fs.CreateTextFile(p2)
Ofl.WriteLine(txt)
Ofl.close
end sub
少し修正すればいけそうですね。
ありがとうございました!