VTK
dox/Infovis/vtkDelimitedTextReader.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkDelimitedTextReader.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 /*-------------------------------------------------------------------------
00016   Copyright 2008 Sandia Corporation.
00017   Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
00018   the U.S. Government retains certain rights in this software.
00019 -------------------------------------------------------------------------*/
00020 
00021 
00069 #ifndef __vtkDelimitedTextReader_h
00070 #define __vtkDelimitedTextReader_h
00071 
00072 #include "vtkTableAlgorithm.h"
00073 #include "vtkUnicodeString.h" // Needed for vtkUnicodeString
00074 #include "vtkStdString.h" // Needed for vtkStdString
00075 
00076 class VTK_INFOVIS_EXPORT vtkDelimitedTextReader : public vtkTableAlgorithm
00077 {
00078 public:
00079   static vtkDelimitedTextReader* New();
00080   vtkTypeMacro(vtkDelimitedTextReader, vtkTableAlgorithm);
00081   void PrintSelf(ostream& os, vtkIndent indent);
00082 
00084 
00085   vtkGetStringMacro(FileName);
00086   vtkSetStringMacro(FileName);
00088 
00090 
00098   vtkGetStringMacro(UnicodeCharacterSet);
00099   vtkSetStringMacro(UnicodeCharacterSet);
00101 
00103 
00106   void SetUTF8RecordDelimiters(const char* delimiters);
00107   const char* GetUTF8RecordDelimiters();
00108   void SetUnicodeRecordDelimiters(const vtkUnicodeString& delimiters);
00109   vtkUnicodeString GetUnicodeRecordDelimiters();
00111 
00113 
00118   vtkSetStringMacro(FieldDelimiterCharacters);
00119   vtkGetStringMacro(FieldDelimiterCharacters);
00121 
00122   void SetUTF8FieldDelimiters(const char* delimiters);
00123   const char* GetUTF8FieldDelimiters();
00124   void SetUnicodeFieldDelimiters(const vtkUnicodeString& delimiters);
00125   vtkUnicodeString GetUnicodeFieldDelimiters();
00126 
00128 
00133   vtkGetMacro(StringDelimiter, char);
00134   vtkSetMacro(StringDelimiter, char);
00136 
00137   void SetUTF8StringDelimiters(const char* delimiters);
00138   const char* GetUTF8StringDelimiters();
00139   void SetUnicodeStringDelimiters(const vtkUnicodeString& delimiters);
00140   vtkUnicodeString GetUnicodeStringDelimiters();
00141 
00143 
00144   vtkSetMacro(UseStringDelimiter, bool);
00145   vtkGetMacro(UseStringDelimiter, bool);
00146   vtkBooleanMacro(UseStringDelimiter, bool);
00148 
00150 
00151   vtkGetMacro(HaveHeaders, bool);
00152   vtkSetMacro(HaveHeaders, bool);
00154 
00156 
00159   vtkSetMacro(MergeConsecutiveDelimiters, bool);
00160   vtkGetMacro(MergeConsecutiveDelimiters, bool);
00161   vtkBooleanMacro(MergeConsecutiveDelimiters, bool);
00163 
00165 
00168   vtkGetMacro(MaxRecords, vtkIdType);
00169   vtkSetMacro(MaxRecords, vtkIdType);
00171 
00173 
00176   vtkSetMacro(DetectNumericColumns, bool);
00177   vtkGetMacro(DetectNumericColumns, bool);
00178   vtkBooleanMacro(DetectNumericColumns, bool);
00180 
00182 
00185   vtkSetMacro(ForceDouble, bool);
00186   vtkGetMacro(ForceDouble, bool);
00187   vtkBooleanMacro(ForceDouble, bool);
00189 
00191 
00200   vtkSetMacro(TrimWhitespacePriorToNumericConversion, bool);
00201   vtkGetMacro(TrimWhitespacePriorToNumericConversion, bool);
00202   vtkBooleanMacro(TrimWhitespacePriorToNumericConversion, bool);
00204 
00206 
00209   vtkSetMacro(DefaultIntegerValue, int);
00210   vtkGetMacro(DefaultIntegerValue, int);
00212 
00214 
00217   vtkSetMacro(DefaultDoubleValue, double);
00218   vtkGetMacro(DefaultDoubleValue, double);
00220 
00222 
00224   vtkSetStringMacro(PedigreeIdArrayName);
00225   vtkGetStringMacro(PedigreeIdArrayName);
00227 
00229 
00231   vtkSetMacro(GeneratePedigreeIds, bool);
00232   vtkGetMacro(GeneratePedigreeIds, bool);
00233   vtkBooleanMacro(GeneratePedigreeIds, bool);
00235 
00237 
00238   vtkSetMacro(OutputPedigreeIds, bool);
00239   vtkGetMacro(OutputPedigreeIds, bool);
00240   vtkBooleanMacro(OutputPedigreeIds, bool);
00242 
00246   vtkStdString GetLastError();
00247 
00249 
00252   vtkSetMacro(ReplacementCharacter, vtkTypeUInt32);
00253   vtkGetMacro(ReplacementCharacter, vtkTypeUInt32);
00255 
00256 //BTX
00257 protected:
00258   vtkDelimitedTextReader();
00259   ~vtkDelimitedTextReader();
00260 
00261   int RequestData(
00262     vtkInformation*,
00263     vtkInformationVector**,
00264     vtkInformationVector*);
00265 
00266   char* FileName;
00267   char* UnicodeCharacterSet;
00268   vtkIdType MaxRecords;
00269   vtkUnicodeString UnicodeRecordDelimiters;
00270   vtkUnicodeString UnicodeFieldDelimiters;
00271   vtkUnicodeString UnicodeStringDelimiters;
00272   vtkUnicodeString UnicodeWhitespace;
00273   vtkUnicodeString UnicodeEscapeCharacter;
00274   bool DetectNumericColumns;
00275   bool ForceDouble;
00276   bool TrimWhitespacePriorToNumericConversion;
00277   int DefaultIntegerValue;
00278   double DefaultDoubleValue;
00279   char* FieldDelimiterCharacters;
00280   char StringDelimiter;
00281   bool UseStringDelimiter;
00282   bool HaveHeaders;
00283   bool UnicodeOutputArrays;
00284   bool MergeConsecutiveDelimiters;
00285   char* PedigreeIdArrayName;
00286   bool GeneratePedigreeIds;
00287   bool OutputPedigreeIds;
00288   vtkStdString LastError;
00289   vtkTypeUInt32 ReplacementCharacter;
00290 
00291 private:
00292   vtkDelimitedTextReader(const vtkDelimitedTextReader&); // Not implemented
00293   void operator=(const vtkDelimitedTextReader&);   // Not implemented
00294 //ETX
00295 };
00296 
00297 #endif
00298