VTK  9.0.1
vtkDelimitedTextReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDelimitedTextReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*-------------------------------------------------------------------------
16  Copyright 2008 Sandia Corporation.
17  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18  the U.S. Government retains certain rights in this software.
19 -------------------------------------------------------------------------*/
20 
63 #ifndef vtkDelimitedTextReader_h
64 #define vtkDelimitedTextReader_h
65 
66 #include "vtkIOInfovisModule.h" // For export macro
67 #include "vtkStdString.h" // Needed for vtkStdString
68 #include "vtkTableAlgorithm.h"
69 #include "vtkUnicodeString.h" // Needed for vtkUnicodeString
70 
71 class VTKIOINFOVIS_EXPORT vtkDelimitedTextReader : public vtkTableAlgorithm
72 {
73 public:
74  static vtkDelimitedTextReader* New();
76  void PrintSelf(ostream& os, vtkIndent indent) override;
77 
79 
82  vtkGetStringMacro(FileName);
83  vtkSetStringMacro(FileName);
85 
87 
93  void SetInputString(const char* in);
94  vtkGetStringMacro(InputString);
95  void SetInputString(const char* in, int len);
96  vtkGetMacro(InputStringLength, int);
97  void SetInputString(const vtkStdString& input)
98  {
99  this->SetInputString(input.c_str(), static_cast<int>(input.length()));
100  }
102 
104 
108  vtkSetMacro(ReadFromInputString, vtkTypeBool);
109  vtkGetMacro(ReadFromInputString, vtkTypeBool);
110  vtkBooleanMacro(ReadFromInputString, vtkTypeBool);
112 
114 
125  vtkGetStringMacro(UnicodeCharacterSet);
126  vtkSetStringMacro(UnicodeCharacterSet);
128 
130 
135  void SetUTF8RecordDelimiters(const char* delimiters);
136  const char* GetUTF8RecordDelimiters();
137  void SetUnicodeRecordDelimiters(const vtkUnicodeString& delimiters);
138  vtkUnicodeString GetUnicodeRecordDelimiters();
140 
142 
149  vtkSetStringMacro(FieldDelimiterCharacters);
150  vtkGetStringMacro(FieldDelimiterCharacters);
152 
153  void SetUTF8FieldDelimiters(const char* delimiters);
154  const char* GetUTF8FieldDelimiters();
155  void SetUnicodeFieldDelimiters(const vtkUnicodeString& delimiters);
156  vtkUnicodeString GetUnicodeFieldDelimiters();
157 
159 
168  vtkGetMacro(StringDelimiter, char);
169  vtkSetMacro(StringDelimiter, char);
171 
172  void SetUTF8StringDelimiters(const char* delimiters);
173  const char* GetUTF8StringDelimiters();
174  void SetUnicodeStringDelimiters(const vtkUnicodeString& delimiters);
175  vtkUnicodeString GetUnicodeStringDelimiters();
176 
178 
181  vtkSetMacro(UseStringDelimiter, bool);
182  vtkGetMacro(UseStringDelimiter, bool);
183  vtkBooleanMacro(UseStringDelimiter, bool);
185 
187 
191  vtkGetMacro(HaveHeaders, bool);
192  vtkSetMacro(HaveHeaders, bool);
194 
196 
201  vtkSetMacro(MergeConsecutiveDelimiters, bool);
202  vtkGetMacro(MergeConsecutiveDelimiters, bool);
203  vtkBooleanMacro(MergeConsecutiveDelimiters, bool);
205 
207 
211  vtkGetMacro(MaxRecords, vtkIdType);
212  vtkSetMacro(MaxRecords, vtkIdType);
214 
216 
221  vtkSetMacro(DetectNumericColumns, bool);
222  vtkGetMacro(DetectNumericColumns, bool);
223  vtkBooleanMacro(DetectNumericColumns, bool);
225 
227 
232  vtkSetMacro(ForceDouble, bool);
233  vtkGetMacro(ForceDouble, bool);
234  vtkBooleanMacro(ForceDouble, bool);
236 
238 
253  vtkSetMacro(TrimWhitespacePriorToNumericConversion, bool);
254  vtkGetMacro(TrimWhitespacePriorToNumericConversion, bool);
255  vtkBooleanMacro(TrimWhitespacePriorToNumericConversion, bool);
257 
259 
263  vtkSetMacro(DefaultIntegerValue, int);
264  vtkGetMacro(DefaultIntegerValue, int);
266 
268 
272  vtkSetMacro(DefaultDoubleValue, double);
273  vtkGetMacro(DefaultDoubleValue, double);
275 
277 
281  vtkSetStringMacro(PedigreeIdArrayName);
282  vtkGetStringMacro(PedigreeIdArrayName);
284 
286 
290  vtkSetMacro(GeneratePedigreeIds, bool);
291  vtkGetMacro(GeneratePedigreeIds, bool);
292  vtkBooleanMacro(GeneratePedigreeIds, bool);
294 
296 
299  vtkSetMacro(OutputPedigreeIds, bool);
300  vtkGetMacro(OutputPedigreeIds, bool);
301  vtkBooleanMacro(OutputPedigreeIds, bool);
303 
305 
310  vtkSetMacro(AddTabFieldDelimiter, bool);
311  vtkGetMacro(AddTabFieldDelimiter, bool);
312  vtkBooleanMacro(AddTabFieldDelimiter, bool);
314 
320  vtkStdString GetLastError();
321 
323 
328  vtkSetMacro(ReplacementCharacter, vtkTypeUInt32);
329  vtkGetMacro(ReplacementCharacter, vtkTypeUInt32);
331 
332 protected:
334  ~vtkDelimitedTextReader() override;
335 
337 
338  // Read the content of the input file.
339  int ReadData(vtkTable* const output_table);
340 
341  char* FileName;
343  char* InputString;
368  vtkTypeUInt32 ReplacementCharacter;
369 
370 private:
372  void operator=(const vtkDelimitedTextReader&) = delete;
373 };
374 
375 #endif
vtkDelimitedTextReader::OutputPedigreeIds
bool OutputPedigreeIds
Definition: vtkDelimitedTextReader.h:365
vtkStdString.h
vtkTableAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkDelimitedTextReader::DetectNumericColumns
bool DetectNumericColumns
Definition: vtkDelimitedTextReader.h:352
vtkDelimitedTextReader::InputString
char * InputString
Definition: vtkDelimitedTextReader.h:343
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkDelimitedTextReader::GeneratePedigreeIds
bool GeneratePedigreeIds
Definition: vtkDelimitedTextReader.h:364
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:35
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:62
vtkDelimitedTextReader::UnicodeWhitespace
vtkUnicodeString UnicodeWhitespace
Definition: vtkDelimitedTextReader.h:350
vtkUnicodeString.h
vtkDelimitedTextReader::FieldDelimiterCharacters
char * FieldDelimiterCharacters
Definition: vtkDelimitedTextReader.h:357
vtkDelimitedTextReader::ReadFromInputString
vtkTypeBool ReadFromInputString
Definition: vtkDelimitedTextReader.h:342
vtkDelimitedTextReader::UnicodeEscapeCharacter
vtkUnicodeString UnicodeEscapeCharacter
Definition: vtkDelimitedTextReader.h:351
vtkDelimitedTextReader::UnicodeFieldDelimiters
vtkUnicodeString UnicodeFieldDelimiters
Definition: vtkDelimitedTextReader.h:348
vtkDelimitedTextReader::DefaultDoubleValue
double DefaultDoubleValue
Definition: vtkDelimitedTextReader.h:356
vtkDelimitedTextReader::UnicodeCharacterSet
char * UnicodeCharacterSet
Definition: vtkDelimitedTextReader.h:345
vtkDelimitedTextReader::LastError
vtkStdString LastError
Definition: vtkDelimitedTextReader.h:367
vtkDelimitedTextReader::StringDelimiter
char StringDelimiter
Definition: vtkDelimitedTextReader.h:358
vtkDelimitedTextReader::DefaultIntegerValue
int DefaultIntegerValue
Definition: vtkDelimitedTextReader.h:355
vtkDelimitedTextReader::SetInputString
void SetInputString(const vtkStdString &input)
Definition: vtkDelimitedTextReader.h:97
vtkDelimitedTextReader::InputStringLength
int InputStringLength
Definition: vtkDelimitedTextReader.h:344
vtkTableAlgorithm
Superclass for algorithms that produce only vtkTables as output.
Definition: vtkTableAlgorithm.h:48
vtkDelimitedTextReader::HaveHeaders
bool HaveHeaders
Definition: vtkDelimitedTextReader.h:360
vtkDelimitedTextReader::UseStringDelimiter
bool UseStringDelimiter
Definition: vtkDelimitedTextReader.h:359
vtkDelimitedTextReader::UnicodeOutputArrays
bool UnicodeOutputArrays
Definition: vtkDelimitedTextReader.h:361
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkUnicodeString
String class that stores Unicode text.
Definition: vtkUnicodeString.h:69
vtkDelimitedTextReader::UnicodeRecordDelimiters
vtkUnicodeString UnicodeRecordDelimiters
Definition: vtkDelimitedTextReader.h:347
vtkDelimitedTextReader::UnicodeStringDelimiters
vtkUnicodeString UnicodeStringDelimiters
Definition: vtkDelimitedTextReader.h:349
vtkDelimitedTextReader::FileName
char * FileName
Definition: vtkDelimitedTextReader.h:341
vtkDelimitedTextReader
reads in delimited ascii or unicode text files and outputs a vtkTable data structure.
Definition: vtkDelimitedTextReader.h:71
vtkDelimitedTextReader::MaxRecords
vtkIdType MaxRecords
Definition: vtkDelimitedTextReader.h:346
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:73
vtkDelimitedTextReader::MergeConsecutiveDelimiters
bool MergeConsecutiveDelimiters
Definition: vtkDelimitedTextReader.h:362
vtkTableAlgorithm.h
vtkDelimitedTextReader::TrimWhitespacePriorToNumericConversion
bool TrimWhitespacePriorToNumericConversion
Definition: vtkDelimitedTextReader.h:354
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:34
vtkDelimitedTextReader::ForceDouble
bool ForceDouble
Definition: vtkDelimitedTextReader.h:353
vtkDelimitedTextReader::AddTabFieldDelimiter
bool AddTabFieldDelimiter
Definition: vtkDelimitedTextReader.h:366
vtkTableAlgorithm::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
vtkDelimitedTextReader::ReplacementCharacter
vtkTypeUInt32 ReplacementCharacter
Definition: vtkDelimitedTextReader.h:368
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkDelimitedTextReader::PedigreeIdArrayName
char * PedigreeIdArrayName
Definition: vtkDelimitedTextReader.h:363
vtkTableAlgorithm::New
static vtkTableAlgorithm * New()