//--------------------------------------------------------------------------- // GETFILEEXT : ファイル名から拡張子を得るルーチン // [Usage] : // call GETFILEEXT $$file; // $$ext = $$return; // // $$file : ファイル名 // $$ext : 拡張子(ピリオドは含まない) // // 備考: ファイル(ベース)名の最後にあるピリオドから後ろの文字列を、 // なければ ""(ヌル文字) を返します。 // 但しファイル名の先頭にのみピリオドがある場合は // ファイルベース名を返します。 // ("" を返したい時はコード中のコメントを参照) // //--------------------------------------------------------------------------- // サンプル: // call GETFILEEXT "c:\\dir\\filename.ext"; // message $$return; // "ext" が表示される。 // call GETFILEEXT "file.name.ext"; // message $$return; // "ext" が表示される。 // call GETFILEEXT "c:\\dir.name\\.ext"; // message $$return; // "ext" が表示される。 // endmacro; //--------------------------------------------------------------------------- // GETFILEEXT: $$sep = "\\/"; // ディレクトリセパレータ( "\" と "/" ) ##l = strlen($$1); while( ##l ){ ##l = ##l - 1; $$s = midstr($$1,##l,1); if( $$s == "." ){ // ".ext" -> "" を返したければ以下のコメントを外す。 // if( (!##l) || strstr($$sep,midstr($$1,##l-1,1))+1 ) return ""; return midstr($$1,##l+1,255); } else if( strstr($$sep,$$s)+1 ) return ""; } return ""; //---------------------------------------------------------------------------