MCPcopy Create free account
hub / github.com/Kitware/VTK / DelimitedTextIterator

Class DelimitedTextIterator

IO/TecplotTable/vtkTecplotTableReader.cxx:43–323  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41{
42
43class DelimitedTextIterator : public vtkTextCodec::OutputIterator
44{
45public:
46 typedef std::forward_iterator_tag iterator_category;
47 typedef vtkTypeUInt32 value_type;
48 typedef std::string::difference_type difference_type;
49 typedef value_type* pointer;
50 typedef value_type& reference;
51
52 DelimitedTextIterator(vtkTable* outputTable, vtkIdType maxRecords, vtkIdType headerLines,
53 vtkIdType columnHeadersOnLine, vtkIdType skipColumnNames)
54 : MaxRecords(maxRecords)
55 // first two lines are title + column names
56 , MaxRecordIndex(maxRecords + headerLines)
57 , WhiteSpaceOnlyString(true)
58 , OutputTable(outputTable)
59 , CurrentRecordIndex(0)
60 , CurrentFieldIndex(0)
61 , HeaderLines(headerLines)
62 , ColumnNamesOnLine(columnHeadersOnLine)
63 , SkipColumnNames(skipColumnNames)
64 , RecordAdjacent(true)
65 , MergeConsDelims(true)
66 , ProcessEscapeSequence(false)
67 , UseStringDelimiter(true)
68 , WithinString(0)
69 {
70 // how records (e.g. lines) are separated
71 RecordDelimiters.insert('\n');
72 RecordDelimiters.insert('\r');
73
74 // how fields (e.g. entries) are separated
75 FieldDelimiters.insert(' ');
76 FieldDelimiters.insert('\t');
77
78 // how string entries are separated
79 StringDelimiters.insert('"');
80 StringDelimiters.insert(' ');
81
82 // what is whitespace
83 Whitespace.insert(' ');
84 Whitespace.insert('\t');
85 }
86
87 ~DelimitedTextIterator() override
88 {
89 // Ensure that all table columns have the same length ...
90 for (vtkIdType i = 0; i != this->OutputTable->GetNumberOfColumns(); ++i)
91 {
92 if (this->OutputTable->GetColumn(i)->GetNumberOfTuples() !=
93 this->OutputTable->GetColumn(0)->GetNumberOfTuples())
94 {
95 this->OutputTable->GetColumn(i)->Resize(
96 this->OutputTable->GetColumn(0)->GetNumberOfTuples());
97 }
98 }
99 }
100

Callers

nothing calls this directly

Calls 5

InsertFieldMethod · 0.95
appendFunction · 0.50
countMethod · 0.45
clearMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected