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
;
; 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
この記事をシェアする
関連記事
- ・HSP2.xで、MIDIファイルのヘッダ情報を調べるモジュール
- ・HSP2.xで、LHA書庫の圧縮と解凍を実現するモジュール
要loadlib&llmod - ・HSP2.xで、HTMLファイル内のリンク先を列挙するサンプルコード(モジュール付き)
- ・HSP2.x系で、アルファベットの大文字と小文字を相互変換するサンプルモジュール
- ・HSP2.x系で、平方根の近似値を整数で取得するサンプルモジュール
- ・HSP2.x系で、getkey、stick命令のキー番号を取得・表示するサンプルコード
- ・HSP2.x系で、円の中心に向かってグラデーションをかけるサンプルコード
- ・HSP2.x系用 ベンチマークプログラム ソースコード
- ・HSP2.xでMDIウインドウを作成するサンプルコード
要loadlib&llmod