⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ofcmdln.h

📁 转化为DIB位图再显示出来的dicom文件C++代码
💻 H
📖 第 1 页 / 共 3 页
字号:
     ** @param  value  reference to floating point variable where the value should be stored     *  @param  low    minimum boundary for value (used for range check)     *  @param  incl   if OFTrue 'low' value is valid (included), otherwise invalid     *     ** @return status of get/conversion, VS_Normal if successful (use getStatusString for error string)     */    E_ValueStatus getValueAndCheckMin(OFCmdFloat &value,                                      const OFCmdFloat low,                                      const OFBool incl = OFTrue);    /** returns next argument as a floating point value and checks for given boundaries     *     ** @param  value  reference to floating point variable where the value should be stored     *  @param  low    minimum boundary for value (used for range check, boundary included)     *  @param  high   maximum boundary for value (dito)     *     ** @return status of get/conversion, VS_Normal if successful (use getStatusString for error string)     */    E_ValueStatus getValueAndCheckMinMax(OFCmdFloat &value,                                         const OFCmdFloat low,                                         const OFCmdFloat high);    /** returns next argument as a C string     *     ** @param  value  reference to C string variable where the value should be stored     *     ** @return status of get/conversion, VS_Normal if successful (use getStatusString for error string)     */    E_ValueStatus getValue(const char *&value);    /** returns next argument as a C++ string     *     ** @param  value  reference to C++ string variable where the value should be stored     *     ** @return status of get/conversion, VS_Normal if successful (use getStatusString for error string)     */    E_ValueStatus getValue(OFCmdString &value); // --- parsing command line    /** parses specified command line arguments (argc, argv).     *  Additionally create internal structures for evaluation and return status indicating any errors     *  occuring during the parse process. If "--help" or the specified shortcut is the only command     *  line argument, the status code PS_NoArguments is returned.     *     ** @param  argCount  number of command line arguments stored in argValue     *  @param  argValue  array where the command line arguments are stored     *  @param  flags     optional flags affecting the parse process (see below)     *  @param  startPos  index of first argument which should be parsed (starting from 0, default: 1)     *     ** @return status of parse process, PS_Normal if successful (use getStatusString for error string)     */    E_ParseStatus parseLine(int argCount,                            char *argValue[],                            const int flags = 0,                            const int startPos = 1); // --- get usage/status strings    /** returns command line syntax as a C++ string (single text line).     *  Text consists of "[options]" (if defined by addOption) and all parameters defined by addParam.     *     ** @param  syntaxStr  reference to C++ string where the text should be stored     */    void getSyntaxString(OFString &syntaxStr) const;    /** returns description of all options as a C++ string (multiple text lines).     *  Text consists of group headings, short and long option names, option descriptions and additional     *  option values.     *     ** @param  optionStr  reference to C++ string where the text should be stored     */    void getOptionString(OFString &optionStr) const;    /** returns description of all parameters as a C++ string (multiple text lines).     *  Text consists of heading "parameters:" and parameter names and descriptions.     *     ** @param  paramStr  reference to C++ string where the text should be stored     */    void getParamString(OFString &paramStr) const;    /** returns status of parseLine as a C++ string     *     ** @param  status     value returned by method parseLine     *  @param  statusStr  reference to C++string where the text should be stored     */    void getStatusString(const E_ParseStatus status,                         OFString &statusStr);    /** returns status of getParam as a C++ string     *     ** @param  status     value returned by method getParam     *  @param  statusStr  reference to C++string where the text should be stored     */    void getStatusString(const E_ParamValueStatus status,                         OFString &statusStr);    /** returns status of getValue as a C++ string     *     ** @param  status     value returned by method getValue     *  @param  statusStr  reference to C++string where the text should be stored     */    void getStatusString(const E_ValueStatus status,                         OFString &statusStr); // --- flags (used for method parseLine)    /// parsing flag to expand wildcard under Windows (very similar to Unix)    static const int ExpandWildcards;    /// disable support for command files ("@filename") containing additional arguments    static const int NoCommandFiles; protected:    /** checks whether given option is valid (starting with an option char and not followed by a number)     */    OFBool checkOption(const OFString &option,                       const OFBool mode = OFTrue) const;    /** finds specified parameter and sets given iterator to this position     */    OFBool findParam(int pos,                     OFListIterator(OFCmdParamPos *) &pos_iter);    /** finds specified option and returns reference to its describing structure     */    const OFCmdOption *findCmdOption(const OFString &option) const;    /** stores the specified parameter in the argument/parameter list     */    void storeParameter(const OFString &param,                        const int directOption = 0);    /** check whether 'argValue' points to command file and parse content if so     */    E_ParseStatus parseCommandFile(const char *argValue,                                   OFList<OFString> &argList);    /** packs the two 16 bit values into one 32 bit value     */    int packColumnValues(int longCols,                         int shortCols) const;    /** unpacks two 16 bit values from one 32 bit value     */    void unpackColumnValues(const int value,                            unsigned int &longCols,                            unsigned int &shortCols) const;#ifdef HAVE_WINDOWS_H    /** expands wildcards in specified parameter.     *  Very similar to Unix environments, stores each resulting parameter in the argument/parameter list     */    void expandWildcards(const OFString &param,                         int directOption = 0);#endif    /** checks whether number of parameters in parsed command line is within the range of min/max (see below)     */    E_ParseStatus checkParamCount();    /** returns last command line argument as a C++ string     */    OFBool getLastArg(OFString &arg);    /** returns name of parameter which is missed in the parsed command line (used for error output)     */    OFBool getMissingParam(OFString &param); private:    /// list of valid/defined command line options    OFList<OFCmdOption *> ValidOptionList;    /// list of valid/defined command line parameters    OFList<OFCmdParam *> ValidParamList;    /// list of command line arguments (after parsing)    OFList<OFString> ArgumentList;    /// current position in argument list    OFListIterator(OFString) ArgumentIterator;    /// list of parameter positions within argument list    OFList<OFCmdParamPos *> ParamPosList;    /// list of option positions within argument list    OFList<OFListIterator_OFString> OptionPosList;    /// current position in option position list    OFListIterator(OFListIterator_OFString) OptionPosIterator;    /// current position in option position list (used for option blocks)    OFListIterator(OFListIterator_OFString) OptionBlockIterator;    /// OFTrue if option block is active, OFFalse otherwise    OFBool OptionBlockMode;    /// C++ string conisting of all valid characters introducing an option    OFString OptionChars;    /// OFTrue if an "exclusive" option is used in the command line, OFFalse otherwise    OFBool ExclusiveOption;    /// width of column for long option names    int LongColumn;    /// width of column for short option names    int ShortColumn;    /// width of column for parameter names    int ParamColumn;    /// minimum number of parameters which should be accepted    int MinParamCount;    /// maximum number of parameter which should be accepted    int MaxParamCount;    /// mode of last added parameter (used for debug checking)    OFCmdParam::E_ParamMode LastParamMode; private:    /// private undefined assignment operator    OFCommandLine &operator=(const OFCommandLine &obj);};#endif/* * * CVS/RCS Log: * $Log: ofcmdln.h,v $ * Revision 1.37  2005/12/08 16:05:48  meichel * Changed include path schema for all DCMTK header files * * Revision 1.36  2003/12/05 13:59:33  joergr * Fixed problem with retrieving option values using the new iteration feature. * * Revision 1.35  2003/12/05 10:36:03  joergr * Added support for iterating over command line arguments and options. * Removed leading underscore characters from preprocessor symbols (reserved * symbols). Updated copyright date where appropriate. * * Revision 1.34  2003/06/12 13:19:58  joergr * Added support for so-called command files ("@filename") which can be used to * summarize command line options and parameter * * Revision 1.33  2003/05/20 08:42:39  joergr * Renamed parameters/variables "string" to avoid name clash with STL class. * * Revision 1.32  2002/12/09 13:04:41  joergr * Replaced tab characters by spaces. * * Revision 1.31  2002/12/05 13:48:21  joergr * Make sure that no warning on "unchecked command line options" is reported in * debug mode when an exclusive option is used. * * Revision 1.30  2002/11/27 11:23:04  meichel * Adapted module ofstd to use of new header file ofstdinc.h * * Revision 1.29  2002/09/19 08:30:20  joergr * Added general support for "exclusive" command line options besides "--help", * e.g. "--version". * * Revision 1.28  2001/11/09 15:46:42  joergr * Renamed some of the getValue/getParam methods to avoid ambiguities reported * by certain compilers. * * Revision 1.27  2001/08/23 16:05:52  meichel * Added private undefined copy assignment operators to avoid gcc warnings * * Revision 1.26  2001/06/01 15:51:32  meichel * Updated copyright header * * Revision 1.25  2000/10/10 12:01:20  meichel * Created/updated doc++ comments * * Revision 1.24  2000/04/14 15:17:11  meichel * Adapted all ofstd library classes to consistently use ofConsole for output. * * Revision 1.23  2000/03/08 16:36:01  meichel * Updated copyright header. * * Revision 1.22  2000/03/07 15:38:49  joergr * Changed behaviour of class OFConsoleApplication to support automatic * evaluation of "--help" option for command line application with no * mandatory parameter. * * Revision 1.21  2000/03/03 14:02:46  meichel * Implemented library support for redirecting error messages into memory *   instead of printing them to stdout/stderr for GUI applications. * * Revision 1.20  2000/03/02 12:39:11  joergr * Fixed inconsistency: console applications with no or only optional * parameters could not be started without any command line argument * because this was always regarded identical with "--help" (print usage). * * Revision 1.19  1999/10/04 10:02:31  joergr * Fixed bug in wildcard expansion (concerning "direct option" feature). * * Revision 1.18  1999/09/13 16:36:54  joergr * Corrected bug in OFCommandLine::findOption() regarding the optional * parameter 'pos' specifying a reference command line parameter. * * Revision 1.17  1999/09/06 16:48:25  joergr * Added support to method 'findOption()' to detect options which are * 'direct' predecessors of an optionally specified reference parameter. * * Revision 1.16  1999/05/04 08:38:26  joergr * Added DOC++ comments to header file. * * Revision 1.15  1999/04/29 15:21:45  joergr * Removed debug code. * * Revision 1.13  1999/04/28 13:13:16  joergr * Removed some '#ifdef DEBUG' statements from header files to avoid * problems with inconsistent compilations. * * Revision 1.12  1999/04/27 17:46:05  joergr * Added some comments (DOC++ style). * * Revision 1.10  1999/04/26 16:32:47  joergr * Added support to define minimum width of short and long option columns. * Removed bug: empty parameters have always been interpreted as options. * Enhanced support of wildcard expansion under Windows (now very similar * to Unix shells). * * Revision 1.9  1999/03/24 16:59:38  joergr * Added optional parameters to define minimum width of columns for short and * long options in syntax output. * Changed optional integer parameter in method findOption to enum type. * * Revision 1.8  1999/02/08 11:51:38  joergr * Removed '#include <iostream.h>' from ofcmdln.h. * * Revision 1.7  1999/02/05 14:07:07  joergr * Added automatic wildcard expansion for Windows compilers. * * Revision 1.6  1998/12/02 18:44:25  joergr * Introduced test whether added options are correct (starting with defined * option character followed by a character which is no number). Changed * parse routine to distinguish between options (normally starting mit - or * +) and signed numbers which can be valid parameters. * * Revision 1.5  1998/12/02 17:38:53  joergr * Introduced new enum type used to indicate the status when converting * parameter values (similar to option values). Changed return value of * getParam() methods to this type. Added corresponding getStatusString() * method to convert status code to strings. * * Revision 1.4  1998/12/02 15:19:49  joergr * Added methods to convert parameters to signed/unsigned integers and * floats. Changed return value of existing getParam() methods. * * Revision 1.3  1998/11/30 12:30:18  joergr * Use lists of pointers (!) to internal data structures to avoid errors with * MSVC5 (operator '==' was not defined to compare structures). * * Revision 1.2  1998/11/30 12:27:02  joergr * Introduced additional type definition to avoid errors with MSVC5 when * using ListIterators of ListIterators (syntax problems?). * * Revision 1.1  1998/11/27 12:34:47  joergr * Added class to handle command line arguments. * * */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -