Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP2 -> HSP2.x系で、ファイルパスから、ファイル名やフォルダ名を取得するサンプルモジュール

HSP2.x系で、ファイルパスから、ファイル名やフォルダ名を取得するサンプルモジュール

Hot Soup Processor 2.x系で使える、ファイルのパスを元に、ファイル名、フォルダ名等を抜き出すサンプルコードです。



モジュール化してあります。




;    finfo p1,"filename",[p2]
;
;    p1=変数 : 結果を格納する文字列型変数
;    "filename" : 元のファイルパス
;    p2=0〜3(0) : 取得モード
;
;    ファイルパスから、ファイル名等を抜き出します。
;    p2には、以下の内容を入れてください。
;
;        p2の内容
;        0 : ファイル名
;        1 : ファイル名(拡張子抜き)
;        2 : 拡張子
;        3 : ディレクトリ名
;
;        (例)
;        a="c:\\windows\\notepad.exe"
;        b=""
;        finfo b,a,0
;        dialog b
;
#module
#deffunc finfo val,str,int
    mref file_name,24
    mref file_path,33
    mref mode,2
    strlen len,file_path
    ;MODE 2
    if mode==2{
        repeat len
            peek index,file_path,len-cnt
            if index=='.'{
                peek file_name,file_path,len-cnt+1
                FLG=1
                break
            }
            else{
                FLG=0
            }
        loop
        if FLG==0 : file_name=""
        return
    }
    ;MODE 0&1&3
    repeat len
        peek index,file_path,len-cnt
        if index=='\'{
            if mode==3{
                strmid file_name,file_path,0,len-cnt
            }
            else{
                peek file_name,file_path,len-cnt+1
            }
            FLG=1
            break
        }else{
            FLG=0
        }
    loop
    if FLG==0{
        if mode==3{
            file_name=""
        }
        else{
            file_name=file_path
        }
        }
    ;MODE 1
    if mode{
        strlen len,file_name
        repeat len
            peek index,file_name,len-cnt
            if index=='.'{
            strmid file_name,file_name,0,len-cnt
            break
            }
        loop
    }
return
#global

最初に記事を書いた日:2017/10/30

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

Spotifyでフォローする

Meteoric Streamについて

運営者情報

開発を依頼したい

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP2 -> HSP2.x系で、ファイルパスから、ファイル名やフォルダ名を取得するサンプルモジュール