つづき
5.騎兵の修正について
入力画像、OCR読取りデータ、VASSALで必要なデータと並び順を見て、編集方法を検討する。
(1)入力画像
(2)読取りデータ
下図のように槍騎兵(コサック)のランサーボーナス(+3)が右のユニットに含まれる。
1つの誤認識(27がer)を除けば、全て認識できており、名称とデータの対応も出来ている。
(3)VASSALで必要なデータと並び順
歩兵と同様に4行のデータである。
(4)編集方法
EXCELの編集シートでは、ランサーボーナス以外は、次のように文字を入力する。
・データ1行目 ;射撃値または散開体形能力Sk(データ無しは、空(””))
・データ2行目 ;白兵戦値
・データ3行目 ;士気値
ランサーボーナスは、白兵戦値の後ろに+文字を付けて入力する。(下図参照)
(5)VBAプログラム
データ3行目に+の文字があるか判定して転送先のデータ設定を変える。
・+なしの場合 ; 3行目のデータをそのまま転送し、4行目は空(“”)を設定する。
・+ありの場合 ; +より前のデータを3行目に、+より後のデータを4行目に設定する。
なお、+の検索にはVBAの正規表現を利用する(+はメタ文字なので\+で表現すること)。
(6)転送先のシート(プログラムの動作後)
次回へつづく
<個人的な感想>
正規表現で苦戦した。+は”直前の文字の1回以上にマッチ”を意味するメタ文字である事に
気付かなかった。正規表現に慣れていない為、思うような検索が出来なくて悩んでしまった。
”数字1か2文字 + 数字1か2文字”を検索する為の正規表現は、以下の通りである。
【誤り】”([0-9]{1,2})+([0-9]{1,2})”
【正しい】”([0-9]{1,2})\+([0-9]{1,2})”