フォルダ名とファイル名を与えると、リソースフォルダ内のファイルの中身が返ってくる。
使い方:
$blob:=JCL_file_GetFromResourcesFolder($inFolder; $inFile; $inEncoding)
引数1($1): フォルダ名
引数2($2): ファイル名
引数3($3): エンコーディング テキストファイルの文字エンコーディングを指定。
戻り値($0): ブロブデータ テキストファイルの内容
ソース
//JCL_file_GetFromResourcesFolder
//20180122 wat
//リソースフォルダの 所定のフォルダから 所定のファイルを 所定のエンコードで取得
C_TEXT($1;$inFolder)
$inFolder:=$1
C_TEXT($2;$inFileName)
$inFileName:=$2
C_TEXT($3;$inEncode)
$inEncode:=$3
C_TEXT($fileText;$0)
$fileText:=""
C_TEXT($folderPath;$filePath)
C_BLOB($blob)
$folderPath:=JCL_file_MakeFilePath (Get 4D folder(Current resources folder);$inFolder)
$filePath:=JCL_file_MakeFilePath ($folderPath;$inFileName)
//ファイルの内容を読み込んで エンコード
DOCUMENT TO BLOB($filePath;$blob)
$fileText:=Convert to text($blob;$inEncode)
$0:=$fileText
【注意】
このコードではフォルダ階層が2個以上またはリソースフォルダにフォルダなしで置いたファイルに対応できてない。別のJCL4Dコマンド「JCL_file_MakeFilePath」が必要。エンコーディングは外部で指定するので、ここでConvertする必要もないかも。