www.pudn.com > ecc-0.3.16-src.zip > eccFormMemory.h


/* ========================================================================== 
 
	ecc - Erik's Code Collection 
	Copyright (C) 2003-2005 - Erik Dienske 
 
	This file is part of ecc. 
 
	ecc is free software; you can redistribute it and/or modify 
	it under the terms of the GNU General Public License as published by 
	the Free Software Foundation; either version 2 of the License, or 
	(at your option) any later version. 
 
	ecc is distributed in the hope that it will be useful, 
	but WITHOUT ANY WARRANTY; without even the implied warranty of 
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
	GNU General Public License for more details. 
 
	You should have received a copy of the GNU General Public License 
	along with ecc; if not, write to the Free Software Foundation, Inc., 
	59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
	 
===========================================================================*/ 
 
//--------------------------------------------------------------------------- 
#ifndef eccFormMemoryH 
#define eccFormMemoryH 
//--------------------------------------------------------------------------- 
 
#include  
//--------------------------------------------------------------------------- 
 
/*	Note that the inifile remains unprotected as 
	long as a TFormMemory object exists! 
 
	-Write Example: 
	{ 
		TFormMemory mem("C:\\Program Files\\MyApp\\mem.ini", true); 
 
		mem.SetComponent(f_Main); 
		mem.WriteProps("Top;Left;"); 
		mem.WriteProps(bt_Exit, "Visible"); 
 
		mem.SetComponent(fr_Settings); 
		mem.WriteProps(fr_Settings->cb_Beep, "Checked"); 
 
		// You can read AND write! 
		TIniFile* ini = mem.GetIniFile(); 
		int apprun = ini->ReadInteger("General", "RunCount", 0); 
		ini->WriteInteger("General", "RunCount", apprun + 1); 
	} 
 
	-Read Example: 
	{ 
		mem.ReadProps(f_Main); 
		mem.ReadProps(fr_Settings); 
	} 
*/ 
//=========================================================================== 
namespace ecc { 
//=========================================================================== 
 
class TFormMemory 
{ 
	private: 
		void ProtectFile(bool protect); 
		void Scramble(char* buf, int flen); 
		void Unscramble(char* buf, int flen); 
		void WriteIniInfo(int fh, char* buf, int flen); 
 
		TComponent*	FSectionComponent; 
		TIniFile* FIniFile; 
		String FFilePath; 
		bool FProtected; 
 
		bool FWritePropsError;	// When true all further WriteProps will be ignored. 
 
	public: 
		TFormMemory(const String ini_fpath, const bool protect = false); 
		/*	Creates a TFormMemory object that reads its data from 
			and saves its data to ini_fpath. 
			If ini_fpath does not exist it is created, including the directories. */ 
 
		~TFormMemory(void); 
		/*	Destroys the TFormMemory object after saving its data to FFilePath. */ 
 
		TIniFile* GetIniFile(); 
		/* Returns NULL if (IniFile->FileName) does not exist. */ 
 
		void SetComponent(TComponent* sect_comp); 
 
		void WriteProps(String props); 
		void WriteProps(TComponent* comp, String props); 
		void ReadProps(TComponent* sect_comp); 
}; 
 
//=========================================================================== 
} // namespace ecc; 
//=========================================================================== 
#endif