⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileini.cpp

📁 UNIX/LINUX下
💻 CPP
字号:
#include "StdAfx.h"
#include "fileini.h"
#include "stdio.h"


CFileini::CFileini()
{
	Itemcount=0;
	newcount=0;
	Items=NULL;
	ItemValues=NULL;
	fp=NULL;
}

int CFileini::iniopen(char *FileName,int It)
{
	int filelen=strlen(FileName);
	if(filelen>512)filelen=512;
	strncpy(inifilename,FileName,filelen);
	inifilename[filelen]=0;
	
	
	fp=fopen(FileName,"a+");
	int i=0;
	if(fp==NULL)return i;
	i=1;
	int fileeof=0,strsize=0;
	
	char temp[200];
	char Itemtemp[100];
	char ItemValuetemp[100];
	
	
	ItemValues=(char**)malloc(It*sizeof(char**));
	Items=(char**)malloc(It*sizeof(char**));


	for(int e=0;e<It;e++)
	{
	ItemValues[e]=NULL;
	Items[e]=NULL;
	}
	
	
	char *ptemp=NULL;
	while(Itemcount<It)
	{
		fileeof=fscanf(fp, "%s\n",temp);
		if(fileeof==EOF)
		{
			i=2;
			break;
		}
		
		char *temp1=strstr(temp,"=");
		int rect=temp1-temp;
		if(rect<0)continue;
		strncpy(Itemtemp,temp,rect);
		Itemtemp[rect]=0;
		
		rect++;
		int tv=0;
		
		for(int i=rect;i<(int)strlen(temp)+1;i++)
		{
			ItemValuetemp[tv++]=temp[i];
		}
		ItemValuetemp[tv]=0;
		
		
		strsize=strlen(Itemtemp)+1;
		ptemp=(char*)malloc(strsize);
		strcpy(ptemp,Itemtemp);
		Items[Itemcount]=ptemp;
		
		
		strsize=strlen(ItemValuetemp)+1;
		ptemp=(char*)malloc(strsize);
		strcpy(ptemp,ItemValuetemp);
		ItemValues[Itemcount]=ptemp;
		
		Itemcount++;
		}
	return i;
}



char*  CFileini::iniread(char *Item)
{
    int i=0;
	
	if(Itemcount==0)return NULL;
	
	while(strstr(Items[i],Item)==NULL)    
	{
		i++;
		if(i==Itemcount)return NULL;
	}
	
	return  ItemValues[i];
	
}


CFileini::iniwrite(char *Item,char *ItemValue)
{
	
		
	int strsize=strlen(Item)+1;
	Items[Itemcount]=(char*)malloc(strsize);
	strcpy(Items[Itemcount],Item);
	
	
	strsize=strlen(ItemValue)+1;
	ItemValues[Itemcount]=(char*)malloc(strsize);
	strcpy(ItemValues[Itemcount],ItemValue);
	
	Itemcount++;
	newcount++;

//		fprintf(fp,"%s=%s\n",Item,ItemValue);

}


CFileini::~CFileini()
{
	
	if(fp!=NULL)fclose(fp);
	DeleteFile(inifilename);
	fp=fopen(inifilename,"a+");
	
	fseek(fp,0,SEEK_SET);
	for(int j=0;j<Itemcount;j++)
	{
	fprintf(fp,"%s=%s\n",Items[j],ItemValues[j]);
	}

	
	
	for(int i=0;i<Itemcount;i++)
	{
		if(Items[i]!=NULL){free(Items[i]);Items[i]=NULL;}
		if(ItemValues[i]!=NULL){free(ItemValues[i]);ItemValues[i]=NULL;}
	}
	if(Items!=NULL){free(Items);Items=NULL;}
	if(ItemValues!=NULL){free(ItemValues);ItemValues=NULL;}
	if(fp!=NULL)fclose(fp);
		
}



char*  CFileini::inimodify(char *Item,char *ItemValue)
{
    int i=0;
	
	
	
	if(Itemcount==0)return NULL;
	
	while(strstr(Items[i],Item)==NULL)    
	{
		i++;
		if(i==Itemcount)return NULL;
	}
	
	free(ItemValues[i]);
	int len=strlen(ItemValue)+1;
	ItemValues[i]=(char*)malloc(len);
	strcpy(ItemValues[i],ItemValue);

	return  ItemValues[i];
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -