guskma / teracotta

Teracotta is a Teraterm macro framework for use when the development environment given to customers has only Teraterm and Excel.
MIT License
18 stars 0 forks source link

CSV、INIの処理を見直したい #3

Open guskma opened 5 years ago

guskma commented 5 years ago

現状、結構オレオレルールなファイル仕様になってます。

CSVがExcelから編集できないのは可愛そうな人たちに申し訳ないので早めに対応したい。

guskma commented 5 years ago

サンプルファイルを直し忘れたので、直し終えたらクローズします。

guskma commented 5 years ago

17 で対応しました。

guskma commented 4 years ago

24 で変数枯渇に対応させるためにIssue復活。

INIファイルの管理の仕方

  1. 環境変数にキー名で tc/ini/[refname]/[section]/[key] として値を格納する。
    • キーの長さ制限はそれほど短くなさそうなので、refname, section, keyが長くなっても問題なし。
    • また、今までのような制約 [a-zA-Z0-9_]+ も緩和して [^/,= ]+ とかにできそう (自由すぎると不具合対処が面倒なのでホワイトリスト形式が良いか)
  2. パラメータは単体で取り出して inputstr に入れるか、複数キーを指定して文字列配列に入れる
    • 存在しないキーは空文字列が入るので問題無し。

CSVファイルの管理の仕方

  1. 表形式は二元配列の方が強いと思うので、制約は多いが文字列配列を利用する。
    • 行数x列数<=65536になるデータが対象 →それほど大きいCSV作るやつおらんやろ!の認識 基本的にはhostsとgroupsの2ファイルを最低限使う予定。 一応20ファイル分の変数を確保
guskma commented 4 years ago

CSV、無造作に配列に突っ込むことによりヘッダーに囚われないデータ管理ができるようになったが、代わりにヘッダーを伴うデータ管理はどうしようかしら。となってしまった状況。

変数枯渇の件もあるし不特定の変数にエクスポートするのも憚られる。。

戻り値を文字列配列に入れればいいんだけど管理がより面倒になる&ヘッダーのインデックス参照の引数を文字列からにするか文字列配列からにするかも決めあぐねるところ。。。