GitHubのtcsvレポジトリをアップデートしました。 少々大きいプログラムで全体を見直したので、時間がかかり、その間ブログの更新ができませんでした。
CSVとは
CSVとは、コンマと改行で区切られた2次元データ形式のことです。 2次元データとは、エクセルデータのように縦横に長方形状に広がったデータです。 そして、CSVはテキストファイルで、データひとつひとつがコンマと改行で区切られます。 1行に含まれるデータ数は、すべての行において同一でなければなりません。 また、最初の行は見出し行(ヘッダー)となります。
CSVは簡単なデータ構造なので、様々な2次元データ、例えばエクセル、データベースなどでインポート/エクスポートに使われます。
tcsvとは
tcsvはC言語で書かれており、GTK 4の上で動くアプリケーションです。 tcsvはCSVファイルを読み書きでき、編集をすることができます。 単にデータの追加/削除だけでなく、フィールドの変更もできます。
tcsvの特徴
tcdvはGTK 4のGtkColumnViewの良い例となっています。 GtkColumnViewの例では単に表示のみをするのが多いのですが、tcsvではGtkTextを使って入力することをサポートしています。 ちょうどエクセルのセルに書き込んで保存できるようなイメージです。 これを実現するには、シグナル・ファクトリーを使い、GtkTextからリストのアイテムへのバインディングが必要になります。 つまり、表示とは逆方向のバインディングです。
このテクニックについてはGTK 4チュートリアルに書き加えたいと考えています。
tcsvは役立つのかというと、まあまあ、と答えるしかありません。 もちろん、実用的であるのは間違いないのですが、同じ作業はエクセルでもできます。 ですから、どちらかというと、GTK 4のGtkColumnViewを試して見るためのプログラムとして意味があったと思います。
今回のアップデートについて
今回のアップデートは大きなもので、1464行の追加と2287行の削除を行いました。
- バグの修正。特にメモリーリーク。
- バインディングの方法をより簡単なものに変更
- GTK 4とGLibの新しいバージョンへの対応(GTK 4.8、GLib 2.74.3)
- プログラムの無駄を省き、よりスリムに。使用するクラスもより簡明なものを採用。
これでしばらくはアップデートは必要ないはずです。
このところ、CとGTK 4に取り組んでいましたが、それは一段落したので、このブログの更新頻度をあげたいと思っています。