tokenst.h Source File

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

tokenst.h
Go to the documentation of this file.

    00001 /**********************************************************************
    00002 tokenst.h - Tokenize and trim strings; Open data files
    00003
    00004 Copyright (C) 1998-2001 by OpenEye Scientific Software, Inc.
    00005 Some portions Copyright (C) 2001-2006 by Geoffrey R. Hutchison
    00006
    00007 This file is part of the Open Babel project.
    00008 For more information, see <http://openbabel.org/>
    00009
    00010 This program is free software; you can redistribute it and/or modify
    00011 it under the terms of the GNU General Public License as published by
    00012 the Free Software Foundation version 2 of the License.
    00013
    00014 This program is distributed in the hope that it will be useful,
    00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
    00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00017 GNU General Public License for more details.
    00018 ***********************************************************************/
    00019
    00020 #ifndef OB_TOKENST_H
    00021 #define OB_TOKENST_H
    00022
    00023 #include <openbabel/babelconfig.h>
    00024
    00025 #include <vector>
    00026 #include <sstream>
    00027 #include <string>
    00028 #include <fstream>
    00029
    00030 namespace OpenBabel
    00031 {
    00032   // Utility function prototypes
    00033   OBERROR bool tokenize(std::vector<std::string>&, const char *buf, const char *delimstr=" \t\n\r");
    00034   OBERROR bool tokenize(std::vector<std::string>&, std::string&, const char *delimstr=" \t\n\r", int limit=-1);
    00036   OBERROR std::string& Trim(std::string& txt);
    00037
    00038   // \return a string representation of a variable
    00039   template<typename T>
    00040   std::string toString(T val)
    00041   {
    00042     std::ostringstream s;
    00043     s << val;
    00044     return s.str();
    00045   }
    00046
    00048   struct DeleteObject
    00049   {
    00050     template<typename T>
    00051     void operator()(const T* ptr)const { delete ptr; }
    00052   };
    00053
    00055   OBERROR std::istream& ignore(std::istream& ifs, const std::string& txt);
    00056
    00058   // full documentation in tokenst.cpp
    00059   OBERROR std::string OpenDatafile(std::ifstream& fs,
    00060                                  const std::string& filename,
    00061                                  const std::string& envvar = "BABEL_DATADIR");
    00062
    00063   // Used by other code for reading files
    00064 #ifdef WIN32
    00065   #define FILE_SEP_CHAR "\\"
    00066 #else
    00067 #define FILE_SEP_CHAR "/"
    00068 #endif
    00069
    00070
    00071 }//namespace
    00072 #endif
    00073

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines