VBSの質問です

<table>
<tr><td>1</td><td>hoge</td></tr>
<tr><td>2</td><td>hoge</td></tr>
<tr><td>1</td><td>hoge</td></tr>
<tr><td>2</td><td>hoge</td></tr>
<tr><td>3</td><td>hoge</td></tr>
<tr><td>1</td><td>hoge</td></tr>
<tr><td>2</td><td>hoge</td></tr>
<tr><td>3</td><td>hoge</td></tr>
<tr><td>1</td><td>hoge</td></tr>
<tr><td>2</td><td>hoge</td></tr>
</table>
というような表が入ったhtmlファイルを
<table>
<tr><td>1</td><td>1</td><td>hoge</td></tr>
<tr><td>1</td><td>2</td><td>hoge</td></tr>
<tr><td>2</td><td>1</td><td>hoge</td></tr>
<tr><td>2</td><td>2</td><td>hoge</td></tr>
<tr><td>2</td><td>3</td><td>hoge</td></tr>
<tr><td>3</td><td>1</td><td>hoge</td></tr>
<tr><td>3</td><td>2</td><td>hoge</td></tr>
<tr><td>3</td><td>3</td><td>hoge</td></tr>
<tr><td>4</td><td>1</td><td>hoge</td></tr>
<tr><td>4</td><td>2</td><td>hoge</td></tr>
</table>
というように、1という数字が現れたら自動的に数字が増やして追加していってくれるコードを教えて下さい

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/03/02 21:16:42
  • 終了:2013/03/03 02:49:10

ベストアンサー

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982013/03/02 22:46:00

ポイント250pt
Dim objFile  ' 対象ファイル
Dim objFile2 ' 出力ファイル
Dim objFSO ' ファイルシステムオブジェクト
Dim k

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("test2.html")
Set objFile2 = objFSO.CreateTextFile("test3.html")
k=0
Do Until objFile.AtEndOfLine = True
	strText = objFile.ReadLine
	if instr(strText,"<tr>") > 0 then
		if instr(strText,"<td>1</td>") > 0 then
			k=k+1
		end if
		strText=replace(strText,"<tr>","<tr><td>" & FormatNumber(k, 0, 0, 0, 0) & "</td>")
	end if
	objFile2.WriteLine (strText)
Loop

objFile.Close
objFile2.Close


元と出力先のファイル名を変更して使用してみてください。

Set objFile = objFSO.OpenTextFile("test2.html")
Set objFile2 = objFSO.CreateTextFile("test3.html")

id:takanii

ありがとうございました!!

2013/03/03 02:48:53

その他の回答(1件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982013/03/02 22:46:00ここでベストアンサー

ポイント250pt
Dim objFile  ' 対象ファイル
Dim objFile2 ' 出力ファイル
Dim objFSO ' ファイルシステムオブジェクト
Dim k

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("test2.html")
Set objFile2 = objFSO.CreateTextFile("test3.html")
k=0
Do Until objFile.AtEndOfLine = True
	strText = objFile.ReadLine
	if instr(strText,"<tr>") > 0 then
		if instr(strText,"<td>1</td>") > 0 then
			k=k+1
		end if
		strText=replace(strText,"<tr>","<tr><td>" & FormatNumber(k, 0, 0, 0, 0) & "</td>")
	end if
	objFile2.WriteLine (strText)
Loop

objFile.Close
objFile2.Close


元と出力先のファイル名を変更して使用してみてください。

Set objFile = objFSO.OpenTextFile("test2.html")
Set objFile2 = objFSO.CreateTextFile("test3.html")

id:takanii

ありがとうございました!!

2013/03/03 02:48:53
id:cx20 No.2

cx20回答回数606ベストアンサー獲得回数1072013/03/02 22:56:18

ポイント250pt

VBScript にて ADO というライブラリを使用したサンプルです。
HTML のテーブルを SQL のテーブルに見立てて読み込んでいます。

' File : ConvTable.vbs
' Usage : CScript ConvTable.vbs //Nologo > table2.html
Option Explicit

Dim cn
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\table.html;Extended Properties=""HTML Import;HDR=No;"""

Dim rs
Set rs = cn.Execute("SELECT F1, F2 FROM [Table]")
Dim n
n = 0
WScript.Echo "<table>"
While Not rs.BOF And Not rs.EOF
    If rs("F1") = 1 Then
        n = n + 1
    End If
    WScript.Echo "<tr><td>" & n & "</td><td>" & rs("F1") & "</td><td>" & rs("F2") & "</td></tr>"
    rs.MoveNext
Wend
WScript.Echo "</table>"

使用方法

CScript ConvTable.vbs //Nologo > table2.html

id:takanii

ありがとうございました!!

2013/03/03 02:48:58

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

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

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

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

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