文字列置換によるコーディングのすすめ

 時折、既に存在するデータを元にソースコードを作る必要があります。それは言語変換で合ったり、特定の Excel の処理の落とし込みだったりします。このような場合、既に存在するデータにはある程度法則性があり、その法則に従って置換を行うことで大量のコードを比較的早く作れます。
 簡単な例として Excel の表であるタブ区切りのデータを元にソースコードを作る方法があります。

作業内容概要	作業内容細分化	作業時間/時	0	d	mod		
アプリ用API	ログイン	0.5	2.5 	0.5 	2.5 	2021/3/12	2021/3/12
アプリ用API	ログアウト	0.5	3.0 	0.6 	3.0 	2021/3/12	2021/3/12
アプリ用API	パスワードリセットメール送信	0.5	3.5 	0.7 	3.5 	2021/3/12	2021/3/12
アプリ用API	会員詳細	0.5	4.0 	0.8 	4.0 	2021/3/12	2021/3/12

 ↑はとある見積りの一部で必要な情報が1列目のカテゴリ、2列目の詳細、3列目の作業時間、7列目の作業開始予定日、8列目の作業終了予定日です。これを次の正規表現で置換すると

([^\t]+)\t([^\t]+)\t([^\t]+)\t([^\t]+)\t([^\t]+)\t([^\t]+)\t([^\t]+)\t([^\t]+)
↓
{"summary": "\1 \2", "estimatedHours": \3, "startDate": "\7","dueDate": "\8"},

/3/
↓
-03-

次の様にオブジェクト配列の一部になります。

{"summary": "アプリ用API ログイン", "estimatedHours": 0.5, "startDate": "2021-03-12", "dueDate": "2021-03-12"},
{"summary": "アプリ用API ログアウト", "estimatedHours": 0.5, "startDate": "2021-03-12", "dueDate": "2021-03-12"},
{"summary": "アプリ用API パスワードリセットメール送信", "estimatedHours": 0.5, "startDate": "2021-03-12","dueDate": "2021-03-12"},
{"summary": "アプリ用API 会員詳細", "estimatedHours": 0.5, "startDate": "2021-03-12", "dueDate": "2021-03-12"},

 この方法は主にその場のみで使うかき捨てスクリプトに便利です。データの読み書きライブラリや関数等の処理が不要になります。例では、この後コードをリクエスト内容にしてスケジュール管理プログラムに送信して終わりです。
 他にも SQL スクリプトを PHP のマイグレーション用コードに変換したり、元データ中で使われている名前をそのまま変数名にしたりする時に便利です。
 少々変わったところではソースコード中に埋め込まなければならないが、ループを構成し難いまあまあ規則的な値を Excel 上で展開してソースコードに復元する、というのもあります。PDF の様な多量の座標直打ちが要求されるときにまあまあ便利です。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG