ファイルパスからフォルダ名を計算する 2

...という前回のような式を書いたらY_Nomura
氏からもっとかっこいい式をご教示いただいた。

Middle ( ファイルパス ; Position ( ファイルパス ; "/" ; 1 ; PatternCount ( ファイルパス ; "/" ) -1) +1; Position ( ファイルパス ; "/" ; 1 ; PatternCount ( ファイルパス ; "/" ) ) - Position ( ファイルパス ; "/" ; 1 ; PatternCount ( ファイルパス ; "/" ) - 1 )- 1 )

このままだとわかりにくいのでちょっと整理すると内容は、
Middle ( テキスト ; 先頭文字位置 ; 文字数 ) つまり

Middle (

ファイルパス ;


Position ( ファイルパス ; "/" ; 1 ; PatternCount ( ファイルパス ; "/" ) -1) +1;


Position ( ファイルパス ; "/" ; 1 ; PatternCount ( ファイルパス ; "/" ) ) -
Position ( ファイルパス ; "/" ; 1 ; PatternCount ( ファイルパス ; "/" ) - 1 )- 1

)

う〜ん、こちらの方が断然美しい!すてきだ。

で、この方式だと画像フォルダのパスが変化(画像フォルダの位置を変えたり別のコンピューターでこのデータベースを利用する)してもパラメーターを置かなくてもそのまま自動でフォルダ名が取り出せる。




.


そこで思いついたのだが、今回は最後の「/」の位置から画像が入っている直下のフォルダ名を計算したので、その一つ前の「/」とさらにもう一つ前の「/」の位置を計算してフォルダ名を取得する。例えば次のようなファイルパス


file://Macintosh
HD/Users/tarosuke/おや/まあ!/こりゃこりゃ/DSCN0940.JPG


は、「おや」というフォルダの中の「まあ!」というフォルダの中の「こりゃこりゃ」というフォルダの中の画像ということなので、それぞれを計算式を考えて験してみた。


そうしたらこのフォルダの画像をまとめて取り込むステップだけで自動的に画像についての内容分類の細分化ができデータベースのテキスト入力の省力化ができた。


Y_Nomura
さん、どうもありがとうございました。