リザルトを加工しよう!3 VBSでCSV化(表題作成) motogp結果を円滑に更新するプロジェクト
前回に引き続き、CSV化を進めます。
表題を付けて完成させましょう。
今回は予選用のリザルトを利用します。
表題(ヘッダー)を作成
上記の黄色い部分をcsv形式で、下記の様に書き出しましょう。
"順位,車番,ライダー,国籍,チーム,バイク,タイム,記録周,周回数,トップ差,差,最高速"
ライダー名の変更
元PDFだと、姓名の間に空白が入り姓,名が分断されてしまいます。これも統合する事にします。
また、ミドル名が分断する問題もあるので、こちらも統合。
序に日本語に変換しましょう。コードは下記。
Replace(strLine,"Marc MARQUEZ","マルケス")
Replace(strLine,"Alex DE ANGELIS","デ.アンジェルス")
実行結果
正しくCSV変換できました。
これに枠や色を付けて見やすくします。
完成!
このエクセルをコピー&ペーストでブログに張り付けると。
順位 | 車番 | ライダー | 国籍 | チーム | バイク | タイム | 記録周 | 周回数 | トップ差 | 差 | 最高速 |
1 | 93 | マルケス | SPA | Repsol Honda Team | HONDA | 1'20.336 | 6 | 8 | 293 | ||
2 | 26 | ペドロサ | SPA | Repsol Honda Team | HONDA | 1'20.628 | 7 | 10 | 0.292 | 0.292 | 294.2 |
3 | 99 | ロレンソ | SPA | Movistar Yamaha MotoGP | YAMAHA | 1'20.921 | 7 | 10 | 0.585 | 0.293 | 289.9 |
4 | 29 | イアンノーネ | ITA | Ducati Team | DUCATI | 1'21.029 | 8 | 10 | 0.693 | 0.108 | 294.5 |
5 | 68 | ヘルナンデス | COL | Octo Pramac Racing | DUCATI | 1'21.115 | 6 | 8 | 0.779 | 0.086 | 292.2 |
6 | 46 | ロッシ | ITA | Movistar Yamaha MotoGP | YAMAHA | 1'21.220 | 9 | 11 | 0.884 | 0.105 | 290.7 |
7 | 41 | 兄エスパルガロ | SPA | Team SUZUKI ECSTAR | SUZUKI | 1'21.239 | 8 | 10 | 0.903 | 0.019 | 282.7 |
8 | 44 | 弟エスパルガロ | SPA | Monster Yamaha Tech 3 | YAMAHA | 1'21.274 | 8 | 9 | 0.938 | 0.035 | 293.4 |
9 | 38 | スミス | GBR | Monster Yamaha Tech 3 | YAMAHA | 1'21.329 | 9 | 10 | 0.993 | 0.055 | 293 |
10 | 35 | クラッチロー | GBR | CWM LCR Honda | HONDA | 1'21.409 | 6 | 9 | 1.073 | 0.08 | 288.3 |
11 | 4 | ドビチオーゾ | ITA | Ducati Team | DUCATI | 1'21.503 | 7 | 8 | 1.167 | 0.094 | 297.1 |
12 | 25 | ビニャーレス | SPA | Team SUZUKI ECSTAR | SUZUKI | 1'21.796 | 7 | 8 | 1.46 | 0.293 | 289.1 |
横幅が狭いので、文字を80%小さくしました。
それでも折り返して見にくい。
もっと小さくしたいけど80%以下の縮小ってHTML編集で直書きになります。
置換機能ないし面倒なので辞めました。
さらに、色情報はコピーされない。悩みますね。
以上 おしまい
ソースコード
'*******************************************************
' MotoGPのリザルトを加工するVBS 空白をカンマに置換
' パターンFP,QT
'*******************************************************
' New 2015.8.5 mota2
' update 2015.8.6 mota2 表題追加
'*******************************************************
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Const cRead = 1, cWrite = 2, cAppend = 8
strScriptPath = Replace(WScript.ScriptFullName,WScript.ScriptName,"")
'元ファイル
Set objIN = objFSO.OpenTextFile(strScriptPath+"\res1.txt", cRead)
'完成ファイル
Set objOUT = objFSO.OpenTextFile(strScriptPath+"\out1.csv", cWrite, True)
'表題作成
strHeader = "順位,車番,ライダー,国籍,チーム,バイク,タイム,記録周,周回数,トップ差,差,最高速"
'表題書き出し
objOUT.WriteLine strHeader
'元ファイル読み込みループ
Do Until objIN.AtEndOfStream
strLine = objIN.ReadLine
'ライダー名を置換
strLine = Replace(strLine,"Marc MARQUEZ","マルケス")
strLine = Replace(strLine,"Valentino ROSSI","ロッシ")
strLine = Replace(strLine,"Scott REDDING","レディング")
strLine = Replace(strLine,"Dani PEDROSA","ペドロサ")
strLine = Replace(strLine,"Yonny HERNANDEZ","ヘルナンデス")
strLine = Replace(strLine,"Andrea DOVIZIOSO","ドビチオーゾ")
strLine = Replace(strLine,"Jorge LORENZO","ロレンソ")
strLine = Replace(strLine,"Aleix ESPARGARO","兄エスパルガロ")
strLine = Replace(strLine,"Cal CRUTCHLOW","クラッチロー")
strLine = Replace(strLine,"Andrea IANNONE","イアンノーネ")
strLine = Replace(strLine,"Maverick VINALES","ビニャーレス")
strLine = Replace(strLine,"Pol ESPARGARO","弟エスパルガロ")
strLine = Replace(strLine,"Bradley SMITH","スミス")
strLine = Replace(strLine,"Danilo PETRUCCI","ペトリッチ")
strLine = Replace(strLine,"Nicky HAYDEN","ヘイデン")
strLine = Replace(strLine,"Hector BARBERA","バルベラ")
strLine = Replace(strLine,"Alvaro BAUTISTA","バウティスタ")
strLine = Replace(strLine,"Eugene LAVERTY","E.リバティ")
strLine = Replace(strLine,"Hiroshi AOYAMA","青山")
strLine = Replace(strLine,"Jack MILLER","ミラー")
strLine = Replace(strLine,"Michael LAVERTY","M.リバティ")
strLine = Replace(strLine,"Loris BAZ","バズ")
strLine = Replace(strLine,"Claudio CORTI","Claudio.CORTI")
strLine = Replace(strLine,"Alex DE ANGELIS","デ.アンジェルス")
strLine = Replace(strLine,"Mike DI MEGLIO","M.DI.MEGLIO")
'空白をカンマ化
strOut = Replace(strLine," ",",")
'チーム名を復元
strOut = Replace(strOut,"Repsol,Honda,Team","Repsol Honda Team")
strOut = Replace(strOut,"Movistar,Yamaha,MotoGP","Movistar Yamaha MotoGP")
strOut = Replace(strOut,"EG,0,0,Marc,VDS","EG 0 0 Marc VDS")
strOut = Replace(strOut,"Octo,Pramac,Racing","Octo Pramac Racing")
strOut = Replace(strOut,"Ducati,Team","Ducati Team")
strOut = Replace(strOut,"Team,SUZUKI,ECSTAR","Team SUZUKI ECSTAR")
strOut = Replace(strOut,"CWM,LCR,Honda","CWM LCR Honda")
strOut = Replace(strOut,"Monster,Yamaha,Tech,3","Monster Yamaha Tech 3")
strOut = Replace(strOut,"Aspar,MotoGP,Team","Aspar MotoGP Team")
strOut = Replace(strOut,"Avintia,Racing","Avintia Racing")
strOut = Replace(strOut,"Aprilia,Racing,Team,Gresini","Aprilia Racing Team Gresini")
strOut = Replace(strOut,"AB,Motoracing","AB Motoracing")
strOut = Replace(strOut,"E-Motion,IodaRacing,Team","E-Motion IodaRacing Team")
strOut = Replace(strOut,"Athina,Forward,Racing","Athina Forward Racing")
'マシン名を復元
strOut = Replace(strOut,"YAMAHA,FORWARD","YAMAHA FORWARD")
'書き出し
objOUT.WriteLine strOut
Loop
'後処理
objIN.Close
objOUT.Close
Set objIN = Nothing
Set objOUT = Nothing