dcdd144598 2011-02-23 kinaba: #ifndef _KILIB_CMDARG_H_ dcdd144598 2011-02-23 kinaba: #define _KILIB_CMDARG_H_ dcdd144598 2011-02-23 kinaba: #include "types.h" dcdd144598 2011-02-23 kinaba: #include "memory.h" dcdd144598 2011-02-23 kinaba: #include "ktlaptr.h" dcdd144598 2011-02-23 kinaba: #include "ktlarray.h" dcdd144598 2011-02-23 kinaba: #ifndef __ccdoc__ dcdd144598 2011-02-23 kinaba: namespace ki { dcdd144598 2011-02-23 kinaba: #endif dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: //@{ @pkg ki.StdLib //@} dcdd144598 2011-02-23 kinaba: //@{ dcdd144598 2011-02-23 kinaba: // コマンドライン文字列の分割 dcdd144598 2011-02-23 kinaba: // dcdd144598 2011-02-23 kinaba: // ただ単にスペースと二重引用符を考慮して区切るだけです。 dcdd144598 2011-02-23 kinaba: //@} dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: class Argv : public Object dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: public: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ 指定された文字列を分割する //@} dcdd144598 2011-02-23 kinaba: Argv( const TCHAR* cmd = GetCommandLine() ); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ 引数Get //@} dcdd144598 2011-02-23 kinaba: const TCHAR* operator[]( ulong i ) const; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ 引数の個数 //@} dcdd144598 2011-02-23 kinaba: ulong size() const; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: private: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: darr<TCHAR> buf_; dcdd144598 2011-02-23 kinaba: storage<const TCHAR*> arg_; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: private: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: NOCOPY(Argv); dcdd144598 2011-02-23 kinaba: }; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //------------------------------------------------------------------------- dcdd144598 2011-02-23 kinaba: #ifndef __ccdoc__ dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: inline const TCHAR* Argv::operator []( ulong i ) const dcdd144598 2011-02-23 kinaba: { return arg_[i]; } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: inline ulong Argv::size() const dcdd144598 2011-02-23 kinaba: { return arg_.size(); } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: #endif // __ccdoc__ dcdd144598 2011-02-23 kinaba: } // namespace ki dcdd144598 2011-02-23 kinaba: #endif // _KILIB_CMDARG_H_