kgtt-cli
from 2023-03-23
kgtt-cliの開発ログ
これのデータどこにいった........??🤔
もしかして削除してしまったか!?!?
うわああああああ
ダウンロードフォルダ上でプロジェクトを展開するのはやめようね!!!
関学の時間割表を扱いやすくするために、Excelデータをjson形式に変換することを試みる。
次の手順で変換する。
.xlsx --(1)Excel--> .csv --(2)--> .json
(2)部の部分を主に開発する。
(1)部は手動で。
SheetJSを使って自動化する。
「CSV UTF-8」で保存する。
typescriptでcsvを読み取る
typescriptでcsvを解析する
使用するもの・前提知識
npm install, npm uninstall, package.jsonとは, npmを使ったパッケージの使い方
あるとよい: npm install --save-dev
使うパッケージ
Typescript(tsc) : 4.8.4
(JavaScriptでも問題ない)
csv-parser: 3.0.0
Node.js: 18.12.1
関西学院大学の事務室が配布した2023年度時間割
2023年度時間割の仕様に沿って変換を行う。
時々修正が入るのでkwicにて確認すること。
これらの処理を行う際には自己責任でお願いします。
p.icon言語選択
C言語 --> マルチバイト文字入力の扱いが面倒そう...?
C++ --> csvの入出力に慣れていない、僕自身まだ使い慣れてない。
こういう小さいプロジェクトでもC++を気軽に扱えるようになりたい
TypeScriptで実装してみる
csv-parser
幸いにも型情報が与えられている。
雑多なノート
tsc --initでtsconfigが作れる。
npm runで実行するscriptsにコマンドライン引数を渡すためには。
与えられた科目名である講義を探す。
p.icon 科目名によるソートの実装
p.icon二分探索の実装
p.icon講義名一覧ファイル入力からデータを受け取る
p.iconマッチする講義名を各行に列挙する
ターム, 時限, 講義者名, 授業コード
--> 秋学期のデータも読み込めるようにしちゃう!
複数候補あればそれらも1セルにまとめて出す
重複なし
区切り文字は-
火1-火2など
それで、新たなCSVテキストファイルを得ることができる
得たCSVファイルを情報工学過程データベースのスプレッドシートに貼っつける
入力系列をExcelファイルから得る
入力列をプログラムに入力
出力されたものをスプレッドシートに貼っつける
p.icon前処理の自動化
p.iconテストを書く。
Windows, DOSからutf-8へ変換
いや、Excelからの出力形式を、csvからCSV UTF-8に乗り換えたらこの部分はスキップできるわ
""で囲まれたセル内改行をなくす。
LFの改行コードを削除し、CRLFのみで扱う。
ややこしい。LFとCRLFの関係が維持されるかも不明。
https://developer.mozilla.org/en-US/docs/Glossary/CRLF
p.icon前のヘッダ行を置換
前から指定行数だけ置換する方法
前処理をcsvを読み込む前に挟み込む。
p.iconcommander.jsを使ってCLIを整備
p.icon機能をasync function化
p.iconinit
search
SheetJSを使って、Excelファイルを入力さえすれば直接CLIで触れるように。
Excelの春学期のシートと秋学期のシートを読み込む
セル内改行がおかしく変換されないか確認
行としての改行は\r\nでセルの改行が\n
と思ったけどkgtt-cliの開発ログ#642c607ed3fe6100005668ac
今の実装がCRLFとLFの違いに依存してないな
UTF-8で出力されるか確認
ローマ数字がどう出力されているか確認