// CodeGear C++Builder
// Copyright (c) 1995, 2011 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'SMI2TXT.pas' rev: 23.00 (Win32)

#ifndef Smi2txtHPP
#define Smi2txtHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <Data.DB.hpp>	// Pascal unit
#include <SMIBase.hpp>	// Pascal unit
#include <System.Variants.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Smi2txt
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TSMTextBreak;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TSMTextBreak : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	int StartPos;
	int FinishPos;
public:
	/* TObject.Create */ inline __fastcall TSMTextBreak(void) : System::TObject() { }
	/* TObject.Destroy */ inline __fastcall virtual ~TSMTextBreak(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TSMImportFromText;
class PASCALIMPLEMENTATION TSMImportFromText : public Smibase::TSMImportBaseComponent
{
	typedef Smibase::TSMImportBaseComponent inherited;
	
private:
	int intLenText;
	int intLenField;
	System::Classes::TStrings* lstFileRows;
	System::Classes::TList* lst;
	int intCurRow;
	System::UnicodeString strFromFile;
	System::UnicodeString strCaptions;
	int FFixedLineLength;
	
protected:
	virtual void __fastcall BeforeImport(void);
	virtual void __fastcall AfterImport(void);
	virtual bool __fastcall LoadRecord(void);
	virtual void __fastcall GoFirst(void);
	virtual void __fastcall GoNext(void);
	virtual bool __fastcall NeedMore(void);
	virtual int __fastcall GetTotalCount(void);
	virtual System::Variant __fastcall GetFieldValue(const System::Variant &v);
	virtual bool __fastcall NotDefined(System::UnicodeString &strProperty);
	virtual bool __fastcall ProcessRowsForColumnTypes(void);
	
public:
	__fastcall virtual TSMImportFromText(System::Classes::TComponent* AOwner);
	__classmethod virtual System::UnicodeString __fastcall Extension();
	__classmethod virtual System::UnicodeString __fastcall FillFileFilters();
	virtual void __fastcall DetectAutoMapping(void);
	virtual System::UnicodeString __fastcall GetColumnFieldName(int Index);
	
__published:
	__property SourceFileName;
	__property Fixed;
	__property RowFirst = {default=1};
	__property RowLast = {default=2147483647};
	__property RowFieldNames = {default=1};
	__property FieldDelimiter = {default=2};
	__property FieldDelimiterCustom = {default=9};
	__property TextQualifier = {default=2};
	__property TextQualifierCustom = {default=34};
	__property RecordSeparator = {default=1};
	__property RecordSeparatorCustom;
	__property int FixedLineLength = {read=FFixedLineLength, write=FFixedLineLength, default=0};
	__property MaxScanRows = {default=0};
public:
	/* TSMImportBaseComponent.Destroy */ inline __fastcall virtual ~TSMImportFromText(void) { }
	
};


class DELPHICLASS TSMImportFromClipboard;
class PASCALIMPLEMENTATION TSMImportFromClipboard : public TSMImportFromText
{
	typedef TSMImportFromText inherited;
	
protected:
	virtual void __fastcall BeforeImport(void);
	virtual void __fastcall AfterImport(void);
public:
	/* TSMImportFromText.Create */ inline __fastcall virtual TSMImportFromClipboard(System::Classes::TComponent* AOwner) : TSMImportFromText(AOwner) { }
	
public:
	/* TSMImportBaseComponent.Destroy */ inline __fastcall virtual ~TSMImportFromClipboard(void) { }
	
};


//-- var, const, procedure ---------------------------------------------------
static const System::Word smiMAXLEN = System::Word(0x4e20);
extern PACKAGE void __fastcall LoadClipboard(bool IsLimited, bool SkipEmpty, System::UnicodeString &Captions, System::Classes::TStrings* lst, const System::UnicodeString RecordSeparator, System::WideChar TextQualifier, System::WideChar FieldDelimiter, int intFirstRow, int intLastRow, int intRowPreview, int intFieldNameRow);
extern PACKAGE void __fastcall LoadTextFile(bool IsLimited, bool SkipEmpty, System::UnicodeString &Captions, System::Classes::TStrings* lst, const System::UnicodeString FileName, const System::UnicodeString RecordSeparator, System::WideChar TextQualifier, System::WideChar FieldDelimiter, int intFirstRow, int intLastRow, int intRowPreview, int intFieldNameRow, int intFixedLineLength);
extern PACKAGE void __fastcall FillFields(Data::Db::TDataSet* DS, bool IsFixed, System::WideChar FieldDelimiter, System::WideChar TextQualifier, const System::UnicodeString strLine, System::Classes::TList* &lst);

}	/* namespace Smi2txt */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_SMI2TXT)
using namespace Smi2txt;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Smi2txtHPP
