【Mind】CSVライブラリを書いてみる#3 バグだらけだったので修正

日本語プログラミング言語MindでCSVライブラリを書いてみる…ですが、すっかりエンバグしたソースを公開したままになっていたので修正しました。(おはずかしい…w)
分解したCSVのデータを保持する配列のクリアタイミングが変だったり、「CSVファイルから一行読みだし」って言いながらCSVファイルを全行読んでいたりともうやりたい放題でした。とほほ。
今後の対応としては、「CSVファイルから一行読みだし」という処理単語はMindらしく構造体を返す単語にしたいところです。構造体はMind7からは型紙(C言語の構造体とか、S/370のDSECTとか..)を適用できるらしいのでちょっとカッコよくなっているはず。
あと、読み出し結果をメモリーを確保して返すようにするとオブジェクトっぽいですよね。できるのかなぁ。
Mindのドキュメントをもうちょっと読み込まないとなぁ。いよいよになったら 作者の片桐明さん(@likekilly)にTwitterで聞いてみてわ?!という かのしまさん(@hidetoap)の助言も頂いたので…(う、他力本願…)
というわけで、恥ずかしいソース公開いきます。
まずわ、CSVライブラリ改良(したのか?!)版w

※
※ CSVライブラリ
※ 2012/1/28 kuni
※
CSVファイルは ファイル。
CSVデータは 256個の 文字列実体。
CSVファイルの読み出し準備とは (文字列->・)
ファイル名は 文字列
ファイル名に 入れ
ファイル名で CSVファイルを オープンして
エラー? ならば
  「!! ファイルのオープンに失敗しました !!:」と ファイル名を 合成して 重大エラーする
つぎに。
一文字指定分断とは (文字、文字列->文字列、文字列)
分断文字は 変数
分解元文字列は 文字列
発見位置は 変数
分断文字と 分解元文字列に 入れ
分断文字で 分解元文字列から 一文字検索し 発見位置に 入れ
発見位置が ゼロ以外
  ならば 発見位置で 分解元文字列を 分断したものと 分解元文字列を 
  さもなければ 分解元文字列と 「」を
つぎに
返す。   
CSV文字列を分解とは (文字列->・)
分解元文字列は 文字列
カウンタは 変数
分解元文字列に 入れ
CSVデータを クリアして
カウンタに 1を 入れ
ここから
  ','で 分解元文字列を 一文字指定分断して
  CSVデータ(カウンタ)と 分解元文字列に 入れ
  分解元文字列が 「」と 等しい文字列
    ならば 打ち切り
      つぎに
  カウンタを 一つ増加し
繰り返す。
CSVファイルから一行読みだしとは (文字列->・)
ワーク文字列は 文字列
CSVファイルから 一行読み出し ワーク文字列に 入れ
データ終わり? ならば 
  終わり
つぎに
ワーク文字列で CSV文字列を分解すること。
CSVファイルをクローズとは
  CSVファイルを クローズする。

ほんで、これをテストするためのテストソースは、こちらです。
以前も書きましたが、test.csvっていうテスト用CSVファイルを作らないと怒りますw

※
※ CSVライブラリのテスト
※
CSVデータを一行分表示とは
  CSVデータ(1個目)を 表示して "/"を 表示し
  CSVデータ(2個目)を 表示して "/"を 表示し
  CSVデータ(3個目)を 表示して "/"を 表示し
  CSVデータ(4個目)を 表示して "/"を 表示して 改行すること。
メインとは
  "test.csv"で CSVファイルの読み出し準備して 
ここから
CSVファイルから一行読みだし
データ終わり? ならば
打ち切り
つぎに
CSVデータを一行分表示して
  繰り返して
  CSVファイルをクローズする。

コメント