ソフトウェア/Igor の履歴(No.1)
更新Igor†
データ解析に Wave Metrics 社の Igor Pro を使っています。
なかなか癖のあるソフトですが、 Igor 上でプログラムを組むことでかなり複雑なデータ解析も自動化できていろいろ捗ります。
ここには使い回しの効きそうなコード例を上げていこうと思います。
ファイル名操作用のユーティリティ関数†
":" 区切りで渡されたファイルパスを操作する関数。
同名の Delphi の関数を模したものです。
LANG:Igor
// ファイル名を返す
function/T ExtractFileName(filename)
string filename
return StringFromlist(ItemsInList(filename, ":")-1, filename, ":")
end
// ファイルパスを返す (末尾には : が付く)
function/T ExtractFilePath(filename)
string filename
return filename[0,strlen(filename)-strlen(ExtractFileName(filename))-1]
end
// filename の . 以降を取り除いたものに ext を付ける
function/T ChangeFileExt(filename, ext)
string filename, ext
variable i = strsearch(filename, ".", inf, 3)
if(i<0)
return filename + ext
else
return filename[0,i-1] + ext
endif
end
使用例
LANG:Igor
print ExtractFileName("c:folder1:folder2:file.ext")
// prints "file.ext"
print ExtractFilePath("c:folder1:folder2:file.ext")
// prints "c:folder1:folder2:"
print ExtractFilePath("c:folder1:folder2:file.ext") + "newfile.ext"
// prints "c:folder1:folder2:newfile.ext"
print ChangeFileExt("c:folder1:folder2:file.ext", ".txt")
// prints "c:folder1:folder2:file.txt"
print ChangeFileExt("c:folder1:folder2:file.ext", "")
// prints "c:folder1:folder2:file"
Counter: 16663 (from 2010/06/03),
today: 1,
yesterday: 4