(AutoHotkey)(ファイル名と思われる文字列から 拡張子以外と思われる部分を抜き出す 編)

 前回に引き続き 個人用の ライブラリからの ぼちぼち紹介です、 ほんとうに ぼちぼちな紹介になってます 笑)

 拡張子だけを変更したいという場面も たまにありますよね、 そのためには 拡張子以外の部分を取り出す必要があるわけですが
まぁ それも 特に難しい事もなく API関数で一発で 取得出来ちゃいますね
『最後の「.」以降を削除するには・・・・』みたいなことを考える必要も無いです
E2DF(Expression, BufferSize = 1000)
{
	VarSetCapacity(Buf, BufferSize, 0x00)
	Buf := Expression
	DllCall("shlwapi.dll\PathRemoveExtensionA", "Str", Buf)
	Return Buf
}
 関数名の由来 は ExpressionToDirectory&Filenameです
前回紹介した E2D関数 と同じく あくまで 『拡張子以外と思われる部分だけを抜き出す関数』なので
実ファイルが存在する必要はありません
もしも 実ファイルが存在する事を保証する必要がある場合は 別途 ファイルの存在を確認してください

 もちろん ロングファイル名 や 2バイト文字でも問題は無いはずです
「フルパス」でも 「相対パス」でも 「ネットワーク上のパス」でも 「拡張子を含むファイル名のみ」でも ファイル名として成立しているならば
最後の「.」以降を省いて 戻り値として 返ってきます

 一旦文字列を確保する バッファのサイズ は デフォルトで 1000バイト確保してますので 普段は 指定する必要は無いと思いますが
必要に応じて 第2引数の値を変更してください