ソフトウェア/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: 11545 (from 2010/06/03), today: 2, yesterday: 0