読者です 読者をやめる 読者になる 読者になる

motogp fun

motogp ファンによる、モトgp 結果、モトgp日程を報告するブログ、ガジェットネタも

リザルトを加工しよう!3 VBSでCSV化(表題作成) motogp結果を円滑に更新するプロジェクト

ソフト開発

前回に引き続き、CSV化を進めます。
表題を付けて完成させましょう。
今回は予選用のリザルトを利用します。

f:id:motagp:20150806074757j:plain

表題(ヘッダー)を作成

f:id:motagp:20150806074832j:plain

上記の黄色い部分をcsv形式で、下記の様に書き出しましょう。

"順位,車番,ライダー,国籍,チーム,バイク,タイム,記録周,周回数,トップ差,差,最高速"

 

ライダー名の変更

元PDFだと、姓名の間に空白が入り姓,名が分断されてしまいます。これも統合する事にします。
また、ミドル名が分断する問題もあるので、こちらも統合。
序に日本語に変換しましょう。コードは下記。

Replace(strLine,"Marc MARQUEZ","マルケス")
Replace(strLine,"Alex DE ANGELIS","デ.アンジェルス")

 

実行結果

f:id:motagp:20150806075842j:plain

正しくCSV変換できました。
これに枠や色を付けて見やすくします。

f:id:motagp:20150806080027j:plain

完成!

このエクセルをコピー&ペーストでブログに張り付けると。

順位 車番 ライダー 国籍 チーム バイク タイム 記録周 周回数 トップ差 最高速
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