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

// (DO NOT EDIT: machine generated header) 'QImport3ASCII.pas' rev: 34.00 (Windows)

#ifndef Qimport3asciiHPP
#define Qimport3asciiHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.WideStrings.hpp>
#include <Winapi.Windows.hpp>
#include <System.Classes.hpp>
#include <System.SysUtils.hpp>
#include <System.IniFiles.hpp>
#include <Data.DB.hpp>
#include <System.StrUtils.hpp>
#include <QImport3.hpp>
#include <QImport3StrTypes.hpp>
#include <QImport3CSVClasses.hpp>
#include <QImport3HashTable.hpp>
#include <QImport3Encoding.hpp>
#include <QImport3StrIDs.hpp>
#include <QImport3Common.hpp>
#include <QImport3WideStrUtils.hpp>

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

namespace Qimport3ascii
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TQImport3ASCII;
//-- type declarations -------------------------------------------------------
class PASCALIMPLEMENTATION TQImport3ASCII : public Qimport3::TQImport3
{
	typedef Qimport3::TQImport3 inherited;
	
private:
	char FComma;
	char FQuote;
	Qimport3encoding::TQICharsetType FEncoding;
	int FCounter;
	System::WideString FBuffStr;
	System::Widestrings::TWideStrings* FColumns;
	Qimport3csvclasses::TCSVFileReader* FCSVReader;
	Qimport3hashtable::TQImportHashTable* FColumnsHash;
	Qimport3hashtable::TQImportHashTable* FPosDataHash;
	bool __fastcall HasComma();
	void __fastcall FillColumnsHash(const System::WideString Str);
	void __fastcall ClearColumnsHash();
	void __fastcall ClearPosDataHash();
	
protected:
	virtual void __fastcall CheckProperties();
	virtual void __fastcall StartImport();
	virtual bool __fastcall CheckCondition();
	virtual bool __fastcall Skip();
	virtual void __fastcall FillImportRow();
	virtual Qimport3::TQImportResult __fastcall ImportData();
	virtual void __fastcall ChangeCondition();
	virtual void __fastcall FinishImport();
	virtual void __fastcall DoLoadConfiguration(System::Inifiles::TIniFile* IniFile);
	virtual void __fastcall DoSaveConfiguration(System::Inifiles::TIniFile* IniFile);
	
public:
	__fastcall virtual TQImport3ASCII(System::Classes::TComponent* AOwner);
	
__published:
	__property FileName = {default=0};
	__property SkipFirstRows = {default=0};
	__property char Comma = {read=FComma, write=FComma, nodefault};
	__property char Quote = {read=FQuote, write=FQuote, nodefault};
	__property Qimport3encoding::TQICharsetType Encoding = {read=FEncoding, write=FEncoding, default=0};
public:
	/* TQImport3.Destroy */ inline __fastcall virtual ~TQImport3ASCII() { }
	
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Qimport3ascii */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_QIMPORT3ASCII)
using namespace Qimport3ascii;
#endif
#pragma pack(pop)
#pragma option pop

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