木製ナットの部屋

CSV支援モジュール

目次

  1. CSV操作
  2. バージョン情報

CSV操作

CSVの分割・結合を行います。

分割するキャラクタを変更すれば、タブ区切り形式のファイルも読み込み可能です。

csv_initial命令

csv_initial p1,p2,p3

  • stat=エラーコード
  • p1=分割文字
  • p2=分割を無視する文字
  • p3=分割無視のエスケープ

CSVの分割・結合を行うセパレータ・エスケープ文字の設定を行います。

各引数の説明は以下の通りです。

p1 各セルの区切り文字を指定します。
初期値はカンマ(",")になります。
ここをタブ文字("\t")に変更すれば、タブ区切りテキストを分割する事も可能です。
p2 区切り文字を認識する時のエスケープを指定します。
初期値はダブルクォーテーション("\"")になります。
ここで指定された文字で囲まれている部分は、一つのセルとして処理されます。
p3 p2をエスケープする文字を指定します。
初期値はダブルクォーテーション("\"")になります。
この文字に続けてp2を記述すると、文字としてp2を認識します。


各引数は半角1文字で、英数字及び記号または特殊文字の指定可能です。

各引数が無効な値の場合、statに値が返ります。

statの戻り値は以下の通りです。各エラーはビットマスクで個別に取り出す事が可能です。

stat=0 エラーはありません。
各引数は正常に指定されました。
stat&1 p1の値が無効です。
p1が単体の1Byte文字ではありません。
stat&2 p2の値が無効です。
p2が単体の1Byte文字ではありません。
stat&4 p3の値が無効です。
p3が単体の1Byte文字ではありません。

csv_split命令

csv_split p1,p2,p3,p4,p5,p6

  • p1=CSV分割先変数
  • p2=分割するCSV
  • p3=分割先頭カラム
  • p4=分割先頭レコード
  • p5=分割最終カラム
  • p6=分割最終レコード

csv_initial命令の設定に従ってCSVの分解を行います。

セル内改行の文字コードがLFの場合、HSP3で扱えるようにCR+LFに置換されます。

各引数の説明は以下の通りです。

p1 分割先の配列変数を指定します。
指定された変数は自動的に初期化されます。
二次配列の一次元目がレコード、二次元目がカラムに対応し、セルA1が配列(0,0)となります。
p3~p6を省略した場合、CSVのテーブルサイズと配列の要素数は一致します。
p2 分割元のCSVの内容を格納した変数を指定します。
noteload及びbloadでCSVを読み込んでください。
p3・p4 分割時の先頭カラムと先頭レコードを指定します。
省略もしくは0を指定した場合は両者とも先頭から分割されます。
引数を指定した場合、p1の要素数はCSVのテーブルサイズより小さくなります。
p5・p6 分割時の最終カラムと最終レコードを指定します。
省略もしくは-1を指定した場合は両者とも最終まで分割されます。
引数を指定した場合、p1の要素数はCSVのテーブルサイズより小さくなります。


p3、p4及びp5、p6に値を指定した場合、p1の要素数は(0,0)~(p5-p3,p6-p4)になります。

p3~p6がCSVのテーブルサイズより大きい場合、そのパラメータは無視されます。

なおp3>p5の場合はカラムの範囲指定を、p4>p6の場合はレコードの範囲指定を無視して全て分割されます。

csv_connect命令

csv_connect p1,p2,p3,p4,p5,p6

  • p1=CSV結合先変数
  • p2=結合する二次元配列
  • p3=結合先頭カラム
  • p4=結合先頭レコード
  • p5=結合最終カラム
  • p6=結合最終レコード

csv_initial命令の設定に従ってCSVの結合を行います。

セル内改行の文字コードはCR+LFに統一されます。

各引数の説明は以下の通りです。

p1 結合先の文字列変数を指定します。
事前にp1はsdimで十分なバッファ領域を確保してください。
p2 結合元の二次元配列変数を指定します。
二次配列の一次元目がレコード、二次元目がカラムに対応し、セルA1が配列(0,0)となります。
p3~p6を省略した場合、配列の要素数とCSVのテーブルサイズは一致します。
p3・p4 結合時の先頭カラムと先頭レコードを指定します。
省略もしくは0を指定した場合は両者とも先頭から結合されます。
引数を指定した場合、p1のテーブルサイズは配列の要素数より小さくなります。
p5・p6 結合時の最終カラムと最終レコードを指定します。
省略もしくは-1を指定した場合は両者とも最終まで結合されます。
引数を指定した場合、p1のテーブルサイズは配列の要素数より小さくなります。


p3、p4及びp5、p6に値を指定した場合、p1のテーブルサイズは(0,0)~(p5-p3,p6-p4)になります。

p3~p6が配列の要素数より大きい場合、そのパラメータは無視されます。

なおp3>p5の場合はカラムの範囲指定を、p4>p6の場合はレコードの範囲指定を無視して全て結合されます。

バージョン情報

以下はバージョン情報になります。

特別な理由が無い限り、最新バージョンのモジュールを使用することを推奨します。

2024/03/24 ver 1.0.1 ダウンロード 配布用に最適化