|
つよきちさん、こんばんは。
杉浦 まさき です。
>この、省略された表示用のキーワード、もしくはその実現方法は存在するのでしょう
>か?
まず、キーワードはないと思います。
で、マクロでこの表示を実現するには、
以下のような感じでいいと思います。
#但し、2バイト文字への対応はサボってます。
//------------------------------------------------------//
$s1 = filename;
call SPLIT $s1, "\\";
#num = ##return;
if( #num > 4 )
$s1 = $spl[0] + "\\...\\" + $spl[#num-2] + "\\" + $spl[#num-1];
$c = inputchar($s1);
// ...
endmacro;
// 指定文字列を指定文字(列)で分割するサブルーチン
// $$1 : 分割する文字列
// $$2 : セパレータとして用いる文字(列)
// 返り値: 分割数
// #分割された文字列は $spl という配列に格納される。
SPLIT:
##l = strlen( $$1 );
##p = strlen( $$2 );
##a = 0;
while( 1 ){
// $$1の最後が$$2だった場合に最後の配列を""として返したければ
// このすぐ後の一行をコメントアウトして下さい。
if( !##l ) break;
##s = strstr( $$1, $$2 );
if( ##s == -1 ){
$spl[##a] = $$1;
##a = ##a + 1;
break;
}
$spl[##a] = leftstr( $$1, ##s );
##l = ##l - ##s - ##p;
$$1 = rightstr( $$1, ##l );
##a = ##a + 1;
}
return ##a;
//--------------------------------------------------------//
|
|