- ベストアンサー
VBスクリプト 文字列操作
VBスクリプト(全くの初心者です)について教えてください。 例えば "test.csv" にて 1,a 1,b 1,c 1,d 2,a 2,b 3,d 3,e 4,a 4,f 4,g のファイルがあるとします。 最初の1列目の数字(文字列)の行数は可変です。 最終的に "test2.csv" 1,a,b,c,d 2,a,b 3,d,e 4,a,f,g というファイルを作りたいのですが,ずばりコードを教えていただけないでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
'状況によって変更する必要があるかもしれませんが、とりあえずは、こんな感じ Dim data, fso, file_in, file_out, aLine, field, num, max_num Dim i Set data = CreateObject("Scripting.Dictionary") Set fso = WScript.CreateObject("Scripting.FileSystemObject") max_num = 0 Set file_in = fso.OpenTextFile("test.csv",1) Do until file_in.AtEndOfStream aLine = file_in.ReadLine field = split(aLine,",") 'カンマでフィールドに分ける num = CInt(field(0)) 'フィールドの最初は番号 if num > max_num then max_num = num '最大の番号を保存する if data.Exists(num) then '既に登録されている data.Item(num) = data.Item(num) & "," & field(1) 'データ部分を追加する else data.Add num, aLine '新規登録 end if Loop file_in.Close Set file_out = fso.OpenTextFile("test2.csv",2,true) for i=1 to max_num if data.Exists(i) then '登録された番号がある file_out.WriteLine(data.Item(i)) '対応する内容を書き出す end if next file_out.Close