# 第8章 ファイル入出力

説明書の第8章に対応するサンプルです。

https://sit-cobol.sit11.com/manual

4種類のファイルについて「作成 → 入力 → 更新」の3本ずつ、合わせて12本です。

  順ファイル      果物ファイル.txt        Standard
  CSVファイル     果物ファイル.csv        Standard
  TSVファイル     果物ファイル.tsv        Standard
  索引ファイル    果物ファイル.sqlite3    Pro 版が必要

# ★ 実行の順番

順番が決まっています。作成例を動かす前に入力例や更新例を実行すると、
読むファイルがまだ無いためエラーになります。

  1. 作成例    OPEN OUTPUT でファイルを新しく作り、WRITE で書き出す
  2. 入力例    OPEN INPUT と READ ... AT END で最後まで読む
  3. 更新例    OPEN I-O と REWRITE で既存のレコードを書き換える

4種類はそれぞれ別のファイルを使うので、種類をまたぐ順番の決まりはありません。
CSVを試したあとにTSVを試す、という順でも構いません。

  順ファイルの作成例.cob      →  順ファイルの入力例.cob      →  順ファイルの更新例.cob
  CSVファイルの作成例.cob     →  CSVファイルの入力例.cob     →  CSVファイルの更新例.cob
  TSVファイルの作成例.cob     →  TSVファイルの入力例.cob     →  TSVファイルの更新例.cob
  索引ファイルの作成例.cob    →  索引ファイルの更新例.cob
                              →  索引ファイルの更新例2.cob

索引ファイルには入力例がありません。更新例が READ と REWRITE の両方を見せる形
になっています。更新例2 は START を使って位置づける書き方で、更新例 とは
組み合わせを変えた別の例です。どちらも作成例のあとに実行してください。

# 読みどころ

・CSV と TSV の指定
    ORGANIZATION IS LINE SEQUENTIAL WITH CSV は SIT COBOL 独自の書き方です。
    区切りの解釈を処理系が行うため、UNSTRING で自分で分ける必要がありません。
    TSV は同じ書き方でタブ区切りになります。

・索引ファイルの実体
    ORGANIZATION IS INDEXED で作られるファイルは SQLite3 のデータベースです。
    拡張子が .sqlite3 なのはそのためで、SQLite のツールで中を覗けます。

# 実行するとできるファイル

  果物ファイル.txt / .csv / .tsv / .sqlite3

配布物には含んでいません。実行すると作られます。
はじめからやり直すときは削除してから作成例に戻ってください。

# うまく動かないとき

  https://sit-cobol.sit11.com/samples/troubleshooting

よくあるつまずきは、サンプル集の readme.txt にも書いてあります。
