/usr/include/vtk-7.1/vtkDelimitedTextReader.h is in libvtk7-dev 7.1.1+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkDelimitedTextReader.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/*-------------------------------------------------------------------------
Copyright 2008 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
/**
* @class vtkDelimitedTextReader
* @brief reads in delimited ascii or unicode text files
* and outputs a vtkTable data structure.
*
*
* vtkDelimitedTextReader is an interface for pulling in data from a
* flat, delimited ascii or unicode text file (delimiter can be any character).
*
* The behavior of the reader with respect to ascii or unicode input
* is controlled by the SetUnicodeCharacterSet() method. By default
* (without calling SetUnicodeCharacterSet()), the reader will expect
* to read ascii text and will output vtkStdString columns. Use the
* Set and Get methods to set delimiters that do not contain UTF8 in
* the name when operating the reader in default ascii mode. If the
* SetUnicodeCharacterSet() method is called, the reader will output
* vtkUnicodeString columns in the output table. In addition, it is
* necessary to use the Set and Get methods that contain UTF8 in the
* name to specify delimiters when operating in unicode mode.
*
* There is also a special character set US-ASCII-WITH-FALLBACK that
* will treat the input text as ASCII no matter what. If and when it
* encounters a character with its 8th bit set it will replace that
* character with the code point ReplacementCharacter. You may use
* this if you have text that belongs to a code page like LATIN9 or
* ISO-8859-1 or friends: mostly ASCII but not entirely. Eventually
* this class will acquire the ability to read gracefully text from
* any code page, making this option obsolete.
*
* This class emits ProgressEvent for every 100 lines it reads.
*
* @par Thanks:
* Thanks to Andy Wilson, Brian Wylie, Tim Shead, and Thomas Otahal
* from Sandia National Laboratories for implementing this class.
*
*
* @warning
* This reader assumes that the first line in the file (whether that's
* headers or the first document) contains at least as many fields as
* any other line in the file.
*/
#ifndef vtkDelimitedTextReader_h
#define vtkDelimitedTextReader_h
#include "vtkIOInfovisModule.h" // For export macro
#include "vtkTableAlgorithm.h"
#include "vtkUnicodeString.h" // Needed for vtkUnicodeString
#include "vtkStdString.h" // Needed for vtkStdString
class VTKIOINFOVIS_EXPORT vtkDelimitedTextReader : public vtkTableAlgorithm
{
public:
static vtkDelimitedTextReader* New();
vtkTypeMacro(vtkDelimitedTextReader, vtkTableAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
//@{
/**
* Specifies the delimited text file to be loaded.
*/
vtkGetStringMacro(FileName);
vtkSetStringMacro(FileName);
//@}
//@{
/**
* Specify the InputString for use when reading from a character array.
* Optionally include the length for binary strings. Note that a copy
* of the string is made and stored. If this causes exceedingly large
* memory consumption, consider using InputArray instead.
*/
void SetInputString(const char *in);
vtkGetStringMacro(InputString);
void SetInputString(const char *in, int len);
vtkGetMacro(InputStringLength, int);
void SetInputString(const vtkStdString& input)
{ this->SetInputString(input.c_str(), static_cast<int>(input.length())); }
//@}
//@{
/**
* Enable reading from an InputString or InputArray instead of the default,
* a file.
*/
vtkSetMacro(ReadFromInputString,int);
vtkGetMacro(ReadFromInputString,int);
vtkBooleanMacro(ReadFromInputString,int);
//@}
//@{
/**
* Specifies the character set used in the input file. Valid character set
* names will be drawn from the list maintained by the Internet Assigned Name
* Authority at
* http://www.iana.org/assignments/character-sets
* Where multiple aliases are provided for a character set, the preferred MIME name
* will be used. vtkUnicodeDelimitedTextReader currently supports "US-ASCII", "UTF-8",
* "UTF-16", "UTF-16BE", and "UTF-16LE" character sets.
*/
vtkGetStringMacro(UnicodeCharacterSet);
vtkSetStringMacro(UnicodeCharacterSet);
//@}
//@{
/**
* Specify the character(s) that will be used to separate records.
* The order of characters in the string does not matter. Defaults
* to "\r\n".
*/
void SetUTF8RecordDelimiters(const char* delimiters);
const char* GetUTF8RecordDelimiters();
void SetUnicodeRecordDelimiters(const vtkUnicodeString& delimiters);
vtkUnicodeString GetUnicodeRecordDelimiters();
//@}
//@{
/**
* Specify the character(s) that will be used to separate fields. For
* example, set this to "," for a comma-separated value file. Set
* it to ".:;" for a file where columns can be separated by a
* period, colon or semicolon. The order of the characters in the
* string does not matter. Defaults to a comma.
*/
vtkSetStringMacro(FieldDelimiterCharacters);
vtkGetStringMacro(FieldDelimiterCharacters);
//@}
void SetUTF8FieldDelimiters(const char* delimiters);
const char* GetUTF8FieldDelimiters();
void SetUnicodeFieldDelimiters(const vtkUnicodeString& delimiters);
vtkUnicodeString GetUnicodeFieldDelimiters();
//@{
/**
* Get/set the character that will begin and end strings. Microsoft
* Excel, for example, will export the following format:
* "First Field","Second Field","Field, With, Commas","Fourth Field"
* The third field has a comma in it. By using a string delimiter,
* this will be correctly read. The delimiter defaults to '"'.
*/
vtkGetMacro(StringDelimiter, char);
vtkSetMacro(StringDelimiter, char);
//@}
void SetUTF8StringDelimiters(const char* delimiters);
const char* GetUTF8StringDelimiters();
void SetUnicodeStringDelimiters(const vtkUnicodeString& delimiters);
vtkUnicodeString GetUnicodeStringDelimiters();
//@{
/**
* Set/get whether to use the string delimiter. Defaults to on.
*/
vtkSetMacro(UseStringDelimiter, bool);
vtkGetMacro(UseStringDelimiter, bool);
vtkBooleanMacro(UseStringDelimiter, bool);
//@}
//@{
/**
* Set/get whether to treat the first line of the file as headers.
* The default is false (no headers).
*/
vtkGetMacro(HaveHeaders, bool);
vtkSetMacro(HaveHeaders, bool);
//@}
//@{
/**
* Set/get whether to merge successive delimiters. Use this if (for
* example) your fields are separated by spaces but you don't know
* exactly how many.
*/
vtkSetMacro(MergeConsecutiveDelimiters, bool);
vtkGetMacro(MergeConsecutiveDelimiters, bool);
vtkBooleanMacro(MergeConsecutiveDelimiters, bool);
//@}
//@{
/**
* Specifies the maximum number of records to read from the file. Limiting the
* number of records to read is useful for previewing the contents of a file.
*/
vtkGetMacro(MaxRecords, vtkIdType);
vtkSetMacro(MaxRecords, vtkIdType);
//@}
//@{
/**
* When set to true, the reader will detect numeric columns and create
* vtkDoubleArray or vtkIntArray for those instead of vtkStringArray. Default
* is off.
*/
vtkSetMacro(DetectNumericColumns, bool);
vtkGetMacro(DetectNumericColumns, bool);
vtkBooleanMacro(DetectNumericColumns, bool);
//@}
//@{
/**
* When set to true and DetectNumericColumns is also true, forces all
* numeric columns to vtkDoubleArray even if they contain only
* integer values. Default is off.
*/
vtkSetMacro(ForceDouble, bool);
vtkGetMacro(ForceDouble, bool);
vtkBooleanMacro(ForceDouble, bool);
//@}
//@{
/**
* When DetectNumericColumns is set to true, whether to trim whitespace from
* strings prior to conversion to a numeric.
* Default is false to preserve backward compatibility.
* vtkVariant handles whitespace inconsistently, so trim it before we try to
* convert it. For example:
* vtkVariant(" 2.0").ToDouble() == 2.0 <-- leading whitespace is not a problem
* vtkVariant(" 2.0 ").ToDouble() == NaN <-- trailing whitespace is a problem
* vtkVariant(" infinity ").ToDouble() == NaN <-- any whitespace is a problem
* In these cases, trimming the whitespace gives us the result we expect:
* 2.0 and INF respectively.
*/
vtkSetMacro(TrimWhitespacePriorToNumericConversion, bool);
vtkGetMacro(TrimWhitespacePriorToNumericConversion, bool);
vtkBooleanMacro(TrimWhitespacePriorToNumericConversion, bool);
//@}
//@{
/**
* When DetectNumericColumns is set to true, the reader use this value to populate
* the vtkIntArray where empty strings are found. Default is 0.
*/
vtkSetMacro(DefaultIntegerValue, int);
vtkGetMacro(DefaultIntegerValue, int);
//@}
//@{
/**
* When DetectNumericColumns is set to true, the reader use this value to populate
* the vtkDoubleArray where empty strings are found. Default is 0.0
*/
vtkSetMacro(DefaultDoubleValue, double);
vtkGetMacro(DefaultDoubleValue, double);
//@}
//@{
/**
* The name of the array for generating or assigning pedigree ids
* (default "id").
*/
vtkSetStringMacro(PedigreeIdArrayName);
vtkGetStringMacro(PedigreeIdArrayName);
//@}
//@{
/**
* If on (default), generates pedigree ids automatically.
* If off, assign one of the arrays to be the pedigree id.
*/
vtkSetMacro(GeneratePedigreeIds, bool);
vtkGetMacro(GeneratePedigreeIds, bool);
vtkBooleanMacro(GeneratePedigreeIds, bool);
//@}
//@{
/**
* If on, assigns pedigree ids to output. Defaults to off.
*/
vtkSetMacro(OutputPedigreeIds, bool);
vtkGetMacro(OutputPedigreeIds, bool);
vtkBooleanMacro(OutputPedigreeIds, bool);
//@}
/**
* Returns a human-readable description of the most recent error, if any.
* Otherwise, returns an empty string. Note that the result is only valid
* after calling Update().
*/
vtkStdString GetLastError();
//@{
/**
* Fallback character for use in the US-ASCII-WITH-FALLBACK
* character set. Any characters that have their 8th bit set will
* be replaced with this code point. Defaults to 'x'.
*/
vtkSetMacro(ReplacementCharacter, vtkTypeUInt32);
vtkGetMacro(ReplacementCharacter, vtkTypeUInt32);
//@}
protected:
vtkDelimitedTextReader();
~vtkDelimitedTextReader();
int RequestData(
vtkInformation*,
vtkInformationVector**,
vtkInformationVector*);
char* FileName;
int ReadFromInputString;
char *InputString;
int InputStringLength;
char* UnicodeCharacterSet;
vtkIdType MaxRecords;
vtkUnicodeString UnicodeRecordDelimiters;
vtkUnicodeString UnicodeFieldDelimiters;
vtkUnicodeString UnicodeStringDelimiters;
vtkUnicodeString UnicodeWhitespace;
vtkUnicodeString UnicodeEscapeCharacter;
bool DetectNumericColumns;
bool ForceDouble;
bool TrimWhitespacePriorToNumericConversion;
int DefaultIntegerValue;
double DefaultDoubleValue;
char* FieldDelimiterCharacters;
char StringDelimiter;
bool UseStringDelimiter;
bool HaveHeaders;
bool UnicodeOutputArrays;
bool MergeConsecutiveDelimiters;
char* PedigreeIdArrayName;
bool GeneratePedigreeIds;
bool OutputPedigreeIds;
vtkStdString LastError;
vtkTypeUInt32 ReplacementCharacter;
private:
vtkDelimitedTextReader(const vtkDelimitedTextReader&) VTK_DELETE_FUNCTION;
void operator=(const vtkDelimitedTextReader&) VTK_DELETE_FUNCTION;
};
#endif
|