Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」


Since:2000/05/16
Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP3 -> HSP3.2でCSVの読み込み

HSP3.2でCSVの読み込み

色々と調べた結果、HSP3.2ならば、 strtrim関数が使えるため、割と楽にCSVが扱えることが判明。
ただ、問題は、改行を含む列がある場合は処理が出来ません。
処理出来ない例:"test", "te
st"

#include "hspda.as"

dialog "", 16, "" // ファイルの選択(CSVファイルを選択)
filename = refstr

sdim buf, 0xffff // ファイルの内容を格納
sdim _line, 0xfff // 1行分の文字列を格納
sdim tmp, 0xfff // 一時的に使用
len = 0 // 取得した行数

notesel buf // メモリノートパッドの初期化
noteload filename // ファイルの読み込み
sdim records, 0xfff, notemax // CSVの行数分メモリを確保

// メインループ
repeat notemax
	noteget _line, cnt // 1行取得
	// 1行分をメモリノートパッド形式でCSVに変換し、
	// records.cntに保存
	csvnote tmp, _line
	records.cnt = tmp
	len++ // 行数インクリメント
loop

// 表示テスト。records配列をrepeatで回し、strtrimで「"」をトリミングして表示
for i, 0, len, 1
	mes "【" + (i + 1) + "行目】"
	notesel records.i
	repeat notemax
		noteget _line, cnt
		mes "" + (cnt + 1) + "列目:" + strtrim(_line, 0, '"')
	loop
next

stop

この記事を書いた日:2009/12/31

HSP3の他の記事

資料室へ
Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP3 -> HSP3.2でCSVの読み込み
▲このページのTopへ