基幹教育の PC の吐く CSV ファイルから、成績表の tex source を作る C source を書いた。
(1) 基幹教育の PC から CSV のフォーマットで取り出す:
(文字コード:Shift-JIS,改行コード:CR+LF,氏名のセパレータ:全角空白)
前後期曜日時限+講義ID,曜日,時限,科目名,担当者氏名,年月日,年月日,年月日,年月日…,年月日(年月日は出欠や小テストの日付)
年組ID,学部,学生番号, ,学生氏名,点数,点数,点数,点数,…,点数(出欠や小テストの点数)
年組ID,学部,学生番号, ,学生氏名,点数,点数,点数,点数,…,点数(出欠や小テストの点数)
…
年組ID,学部,学生番号, ,学生氏名,点数,点数,点数,点数,…,点数(出欠や小テストの点数)
(2) エクセルなどで次の形の CSV に整形する。
年組ID,学生番号上部(学部と入学年情報),学部学科,,,
month,day,X備考,,,(以下で X=S:初期,X=H:平常,X=C:中間,X=K:期末、また備考は何でも良い)
月,日,X備考,,,
月,日,X備考,,,
…
月,日,X備考,,,
room,AxB,部屋番号,,,(A:列数,B:段数)
n/a,A,B,,,(A列B段の座席は使用不可)
…
n/a,C,D,,,(C列D段の座席は使用不可)
年,期,科目名
講義ID,曜日,時限,科目名,担当者氏名,年月日,年月日,年月日,年月日…,年月日
年組ID,学部,学生番号, ,学生氏名,点数,点数,点数,点数,…,点数
年組ID,学部,学生番号, ,学生氏名,点数,点数,点数,点数,…,点数
…
年組ID,学部,学生番号, ,学生氏名,点数,点数,点数,点数,…,点数
(3) nkf(network kanji filter)を nkf -w -Z1 -Lu として通して、 (文字コード:UTF-8,改行コード:LF,氏名のセパレータ:半角空白) の様に整形し、さらに /usr/local/bin/seiseki で tex-source に変換する。
実際には (3) はシェルスクリプトを書いた。