†REXXのどろぬま†
作成開始日
最終更新日
st='25-05-05 23:05 8264 0 ftp.htm' /* DIRの実行結果の1行 */ PARSE VAR st dt tm sz ea fn say dt /*25-05-05*/ say tm /*23:05*/ say sz /*8264*/ say ea /*0*/ say fn /* ftp.htm本来、区切りのホワイトスペースは、いくつあっても1つとして扱われるはずなのに、ファイル名にのみ、余分なスペースがくっつく。なんだ、これは?てんで、簡単な実験をしてみたとろ、←ここだけなぜか先頭にスペースが… */
PARSEの末尾項目に限り、先行スペースが文字として認識されてしまう
と言うことが判った。この例では「ftp.htm」の前にスペースが2つあるので、1つは区切りのホワイトスペースとして、もう1つは文字列の一部としてして認識される。同様に、スペースが3つあれば2つが、4つあれば3つが文字列として項目の前に付いてしまう。このバグを回避するには、末尾にダミー変数を追加しておけば良い。バグはダミー変数が引き受けてくれる。
st='25-05-05 23:05 8264 0 ftp.htm' /* DIRの実行結果の1行 */ PARSE VAR st dt tm sz ea fndmy say dt /*25-05-05*/ …… 中略 …… say fn /*ftp.htm*/