This article was previously published under Q137630
In OLE's apartment threading model, the main apartment of the process is the thread that first calls OleInitialize (or CoInitialize) either implicilty or explicitly. The main apartment must not exit until completion of all OLE work in the process.
いわゆる TRIM 関数です。
//------------------------------------------------------------------------ // trim (文字列からホワイトスペースを取り除く) //------------------------------------------------------------------------ // 戻り値 : 先頭ポインタ //------------------------------------------------------------------------ char *trim( char *lpszString ) // (in) 処理対象の文字列 { char *ps; // 空白文字を除いた先頭 char *pe; // 空白文字を除いた最後尾 char *p; // ワークポインタ // 先頭を見つける for ( ps = lpszString; *ps; ps++ ) { if ( ( 0x81 == *ps ) && ( 0x40 == *( ps + 1 ) ) ) { // 全角スペース ps++; } else if ( 0x20 < *ps ) { // ホワイトスペース以外→先頭 break; } } // 最後を見つける for ( p = pe = ps; *p; p++ ) { if ( ( 0x81 == *p ) && ( 0x40 == *( p + 1 ) ) ) { // 全角スペース p++; } else if ( 0x20 < *p ) { // ホワイトスペース以外→最後尾? pe = p; } } // コピー for ( p = lpszString; ps <= pe; ) { *p++ = *ps++; } *p = '\0'; return lpszString; }
連番の拡張子にリネームするJScript のバッチファイル解です。ポイントは、当たり前といえば当たり前なんですが、FOR 文の内容はすべて遅延展開でないとうまく行かないという点ですね。別にJScript版で充分という気がします。