おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

CSVファイルを編集するプログラム「tcsv」

GitHubのtcsvレポジトリをアップデートしました。 少々大きいプログラムで全体を見直したので、時間がかかり、その間ブログの更新ができませんでした。

CSVとは

CSVとは、コンマと改行で区切られた2次元データ形式のことです。 2次元データとは、エクセルデータのように縦横に長方形状に広がったデータです。 そして、CSVはテキストファイルで、データひとつひとつがコンマと改行で区切られます。 1行に含まれるデータ数は、すべての行において同一でなければなりません。 また、最初の行は見出し行(ヘッダー)となります。

CSVは簡単なデータ構造なので、様々な2次元データ、例えばエクセル、データベースなどでインポート/エクスポートに使われます。

tcsvとは

tcsvはC言語で書かれており、GTK 4の上で動くアプリケーションです。 tcsvはCSVファイルを読み書きでき、編集をすることができます。 単にデータの追加/削除だけでなく、フィールドの変更もできます。

tcsvのスクリーンショット

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に取り組んでいましたが、それは一段落したので、このブログの更新頻度をあげたいと思っています。