VTK  9.1.0
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
102#ifndef vtkDelimitedTextReader_h
103#define vtkDelimitedTextReader_h
104
105#include "vtkIOInfovisModule.h" // For export macro
106#include "vtkStdString.h" // Needed for vtkStdString
107#include "vtkTableAlgorithm.h"
108#include "vtkUnicodeString.h" // Needed for vtkUnicodeString
109
110class VTKIOINFOVIS_EXPORT vtkDelimitedTextReader : public vtkTableAlgorithm
111{
112public:
115 void PrintSelf(ostream& os, vtkIndent indent) override;
116
118
124
126
132 void SetInputString(const char* in);
133 vtkGetStringMacro(InputString);
134 void SetInputString(const char* in, int len);
135 vtkGetMacro(InputStringLength, int);
136 void SetInputString(const vtkStdString& input)
137 {
138 this->SetInputString(input.c_str(), static_cast<int>(input.length()));
139 }
141
143
147 vtkSetMacro(ReadFromInputString, vtkTypeBool);
148 vtkGetMacro(ReadFromInputString, vtkTypeBool);
149 vtkBooleanMacro(ReadFromInputString, vtkTypeBool);
151
153
164 vtkGetStringMacro(UnicodeCharacterSet);
165 vtkSetStringMacro(UnicodeCharacterSet);
167
169
174 void SetUTF8RecordDelimiters(const char* delimiters);
176 VTK_DEPRECATED_IN_9_1_0("Use void SetUTF8RecordDelimiters(const char* delimiters)")
177 void SetUnicodeRecordDelimiters(const vtkUnicodeString& delimiters);
178 VTK_DEPRECATED_IN_9_1_0("Use const char* GetUTF8RecordDelimiters()")
179 vtkUnicodeString GetUnicodeRecordDelimiters();
181
183
190 vtkSetStringMacro(FieldDelimiterCharacters);
191 vtkGetStringMacro(FieldDelimiterCharacters);
193
194 void SetUTF8FieldDelimiters(const char* delimiters);
195 const char* GetUTF8FieldDelimiters();
196 VTK_DEPRECATED_IN_9_1_0("Use void SetUTF8FieldDelimiters(const char* delimiters)")
197 void SetUnicodeFieldDelimiters(const vtkUnicodeString& delimiters);
198 VTK_DEPRECATED_IN_9_1_0("Use const char* GetUTF8FieldDelimiters()")
199 vtkUnicodeString GetUnicodeFieldDelimiters();
200
202
211 vtkGetMacro(StringDelimiter, char);
212 vtkSetMacro(StringDelimiter, char);
214
215 void SetUTF8StringDelimiters(const char* delimiters);
216 const char* GetUTF8StringDelimiters();
217 VTK_DEPRECATED_IN_9_1_0("Use void SetUTF8StringDelimiters(const char* delimiters)")
218 void SetUnicodeStringDelimiters(const vtkUnicodeString& delimiters);
219 VTK_DEPRECATED_IN_9_1_0("Use const char* GetUTF8StringDelimiters()")
220 vtkUnicodeString GetUnicodeStringDelimiters();
221
223
226 vtkSetMacro(UseStringDelimiter, bool);
227 vtkGetMacro(UseStringDelimiter, bool);
228 vtkBooleanMacro(UseStringDelimiter, bool);
230
232
236 vtkGetMacro(HaveHeaders, bool);
237 vtkSetMacro(HaveHeaders, bool);
239
241
246 vtkSetMacro(MergeConsecutiveDelimiters, bool);
247 vtkGetMacro(MergeConsecutiveDelimiters, bool);
248 vtkBooleanMacro(MergeConsecutiveDelimiters, bool);
250
252
256 vtkGetMacro(MaxRecords, vtkIdType);
257 vtkSetMacro(MaxRecords, vtkIdType);
259
261
266 vtkSetMacro(DetectNumericColumns, bool);
267 vtkGetMacro(DetectNumericColumns, bool);
268 vtkBooleanMacro(DetectNumericColumns, bool);
270
272
277 vtkSetMacro(ForceDouble, bool);
278 vtkGetMacro(ForceDouble, bool);
279 vtkBooleanMacro(ForceDouble, bool);
281
283
298 vtkSetMacro(TrimWhitespacePriorToNumericConversion, bool);
299 vtkGetMacro(TrimWhitespacePriorToNumericConversion, bool);
300 vtkBooleanMacro(TrimWhitespacePriorToNumericConversion, bool);
302
304
308 vtkSetMacro(DefaultIntegerValue, int);
309 vtkGetMacro(DefaultIntegerValue, int);
311
313
317 vtkSetMacro(DefaultDoubleValue, double);
318 vtkGetMacro(DefaultDoubleValue, double);
320
322
326 vtkSetStringMacro(PedigreeIdArrayName);
327 vtkGetStringMacro(PedigreeIdArrayName);
329
331
335 vtkSetMacro(GeneratePedigreeIds, bool);
336 vtkGetMacro(GeneratePedigreeIds, bool);
337 vtkBooleanMacro(GeneratePedigreeIds, bool);
339
341
344 vtkSetMacro(OutputPedigreeIds, bool);
345 vtkGetMacro(OutputPedigreeIds, bool);
346 vtkBooleanMacro(OutputPedigreeIds, bool);
348
350
355 vtkSetMacro(AddTabFieldDelimiter, bool);
356 vtkGetMacro(AddTabFieldDelimiter, bool);
357 vtkBooleanMacro(AddTabFieldDelimiter, bool);
359
365 vtkStdString GetLastError();
366
368
373 vtkSetMacro(ReplacementCharacter, vtkTypeUInt32);
374 vtkGetMacro(ReplacementCharacter, vtkTypeUInt32);
376
377protected:
380
382
383 // Read the content of the input file.
384 int ReadData(vtkTable* const output_table);
385
386 char* FileName;
387 vtkTypeBool ReadFromInputString;
388 char* InputString;
389 int InputStringLength;
390 char* UnicodeCharacterSet;
391 vtkIdType MaxRecords;
392 vtkUnicodeString UnicodeRecordDelimiters;
393 vtkUnicodeString UnicodeFieldDelimiters;
394 vtkUnicodeString UnicodeStringDelimiters;
395 vtkUnicodeString UnicodeWhitespace;
396 vtkUnicodeString UnicodeEscapeCharacter;
397 bool DetectNumericColumns;
398 bool ForceDouble;
399 bool TrimWhitespacePriorToNumericConversion;
400 int DefaultIntegerValue;
401 double DefaultDoubleValue;
402 char* FieldDelimiterCharacters;
403 char StringDelimiter;
404 bool UseStringDelimiter;
405 bool HaveHeaders;
406 bool UnicodeOutputArrays;
407 bool MergeConsecutiveDelimiters;
408 char* PedigreeIdArrayName;
409 bool GeneratePedigreeIds;
410 bool OutputPedigreeIds;
411 bool AddTabFieldDelimiter;
412 vtkStdString LastError;
413 vtkTypeUInt32 ReplacementCharacter;
414
415private:
417 void operator=(const vtkDelimitedTextReader&) = delete;
418};
419
420#endif
reads in delimited ascii or unicode text files and outputs a vtkTable data structure.
void SetInputString(const char *in, int len)
Specify the InputString for use when reading from a character array.
void SetUTF8RecordDelimiters(const char *delimiters)
Specify the character(s) that will be used to separate records.
void SetInputString(const char *in)
Specify the InputString for use when reading from a character array.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkGetFilePathMacro(FileName)
Specifies the delimited text file to be loaded.
vtkSetFilePathMacro(FileName)
Specifies the delimited text file to be loaded.
static vtkDelimitedTextReader * New()
const char * GetUTF8RecordDelimiters()
Specify the character(s) that will be used to separate records.
void SetInputString(const vtkStdString &input)
Specify the InputString for use when reading from a character array.
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:105
Superclass for algorithms that produce only vtkTables as output.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:172
String class that stores Unicode text.
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_DEPRECATED_IN_9_1_0(reason)
int vtkIdType
Definition: vtkType.h:332