stuncloud / UWSCR

UWSC互換スクリプト実行ツール
MIT License
54 stars 5 forks source link

CSV読み書き用の専用関数 #202

Open stuncloud opened 3 months ago

stuncloud commented 3 months ago

概要

201 より派生

理由

実装例

csv = fopen('hoge.csv', F_READ or F_WRITE or F_CSV) // オープン時にCSVを明示 F_TSVであればTSV

csvwrite(csv, 'foo', 1, 1)
csvwrite(csv, ['bar', 'baz'], 1, 2) // 複数列一括書き込み

print csvread(csv, 1, 1) // foo
print csvread(csv, 1, 2) // bar
print csvread(csv, 1, 3) // baz
// 行の配列化
print csvread(csv, 1)    // [foo, bar, baz]
cocco84 commented 3 months ago

こちらなのですが以下のような扱い辛いcsvファイルも意図している通りに読み込みができると期待して良いのでしょうか? だとしたらとても嬉しいのですが…

csvファイル

2024-08-23,"1,000円で
りんごを買った"
print csvread(csv, 1, 1) // 2024-08-23
print csvread(csv, 1, 2) // 1,000円で
                         // りんごを買った
print csvread(csv, 2, 1) // EMPTY
stuncloud commented 3 months ago

@cocco84 改行入り項目の読み書きはどこかのバージョンまでは対応してたのですが、何かの実装の折に対応が不可能になってしまったという経緯があります、fput/fgetの限界が出ました… 当時の動作実績があるので、この関数であれば例にあるような読み出しができるようになるはずです