参考、、というかこれを直した。
先に使った関数の補足解説。省いたところは自分でigorのヘルプブラウザを確認してください。
LoadWave [flags] fileNameStr
ファイルを読み込む。
flag: A ダイアログをスキップ, O wave名が重複するときに上書き, G おまじない, B wave名などを設定できる。
fileNameStrを指定しなければ、ダイアログが開いて自分でファイルを選択する。一度ロードすると、最後にロードしたファイル名は$S_filenameで、フォルダのパスは$S_pathで呼び出せる。
IndexedFile(pathName, index, fileTypeOrExtStr)
pathNameで指定したパスの中の、fileTypeOrExtStrindexで指定したファイル形式の、indexで指定したファイルの名前を呼び出す。ファイルが存在しない場合は""を返す。
以下コード
////フォルダ内のファイルをまとめてロードする////
Macro multiload()
loadwave/A/O/G/B="N='_skip_';N='_skip_';"
newpath target , S_path
// loadしたいフォルダの中のファイルを選択し、そのフォルダのpathを取得する。
make/wave/O/N=100/T flist
// flistをテキストウェーブとして定義。ファイルは100個まで読み込む。
variable i = -1
do
i = i + 1
flist[i] = indexedfile(target, i, ".txt")
// flistにフォルダ内のtxt形式のファイルの名前を取り込む
While ((cmpstr(flist[i], "") != 0))
// flist[i]と""を比較し、i番目の名前が""になる(=ファイルが全部読み込めた)まで処理する。
// cmpstrは一致の時に0を返すので、値が0でない限りdoからループを繰り返す
string loading
// 読み込むファイルのパスを仮置き
variable j = 0
do
loading = S_path + flist[j]
// フォルダ内のj番目のファイルのS_pathとファイル名を結合してフルパスを作る
loadwave/A/O/G/B="N=wavelength;N=dummywave;" loading
// j番目のファイルをロードする
rename dummywave , $S_filename
// dummywaveをファイル名に直す。
j = j + 1
While ((cmpstr(flist[j], "") != 0))
// フォルダ内のtxtファイルに対してロードを行う
deletepoints j, 100, flist
// listウェーブの空欄を消す。
Endmacro