OpenMS
TextFile.h
Go to the documentation of this file.
1 // Copyright (c) 2002-present, The OpenMS Team -- EKU Tuebingen, ETH Zurich, and FU Berlin
2 // SPDX-License-Identifier: BSD-3-Clause
3 //
4 // --------------------------------------------------------------------------
5 // $Maintainer: Chris Bielow $
6 // $Authors: Marc Sturm, Chris Bielow $
7 // --------------------------------------------------------------------------
8 
9 #pragma once
10 
12 
13 namespace OpenMS
14 {
20  class OPENMS_DLLAPI TextFile
21  {
22 
23 public:
28  typedef std::vector<String>::iterator Iterator;
30  typedef std::vector<String>::const_iterator ConstIterator;
32  typedef std::vector<String>::reverse_iterator ReverseIterator;
34  typedef std::vector<String>::const_reverse_iterator ConstReverseIterator;
36 
37 
40 
42  virtual ~TextFile();
43 
54  TextFile(const String& filename, bool trim_lines = false, Int first_n = -1, bool skip_empty_lines = false, const String& comment_symbol = "");
55 
67  void load(const String& filename, bool trim_lines = false, Int first_n = -1, bool skip_empty_lines = false, const String& comment_symbol = "");
68 
76  void store(const String& filename);
77 
79  template <typename StringType>
80  TextFile& operator<<(const StringType& string)
81  {
82  buffer_.push_back(static_cast<String>(string));
83  return *this;
84  }
85 
86  template <typename StringType>
87  void addLine(const StringType& line)
88  {
89  buffer_.push_back(static_cast<String>(line));
90  }
91 
98  static std::istream& getLine(std::istream& is, std::string& t);
99 
104 
110 
112 
113 protected:
115  std::vector<String> buffer_;
116  };
117 
118 } // namespace OpenMS
119 
A more convenient string class.
Definition: String.h:34
Definition: TextFile.h:21
Iterator begin()
std::vector< String >::reverse_iterator ReverseIterator
Mutable reverse iterator.
Definition: TextFile.h:32
std::vector< String >::const_iterator ConstIterator
Non-mutable iterator.
Definition: TextFile.h:30
void addLine(const StringType &line)
Definition: TextFile.h:87
void store(const String &filename)
Writes the data to a file.
TextFile & operator<<(const StringType &string)
Operator for appending entries with less code.
Definition: TextFile.h:80
virtual ~TextFile()
destructor
TextFile()
Default constructor.
ConstIterator end() const
Gives access to the underlying text buffer.
TextFile(const String &filename, bool trim_lines=false, Int first_n=-1, bool skip_empty_lines=false, const String &comment_symbol="")
Constructor with filename.
std::vector< String >::const_reverse_iterator ConstReverseIterator
Non-mutable reverse iterator.
Definition: TextFile.h:34
static std::istream & getLine(std::istream &is, std::string &t)
Platform-agnostic getline() which can deal with all line endings (\r, \r\n, \n)
Iterator end()
void load(const String &filename, bool trim_lines=false, Int first_n=-1, bool skip_empty_lines=false, const String &comment_symbol="")
Loads data from a text file.
std::vector< String >::iterator Iterator
Mutable iterator.
Definition: TextFile.h:28
ConstIterator begin() const
Gives access to the underlying text buffer.
std::vector< String > buffer_
Internal buffer storing the lines before writing them to the file.
Definition: TextFile.h:115
int Int
Signed integer type.
Definition: Types.h:72
Main OpenMS namespace.
Definition: openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19