#include
#include
#include
void test()
{
FILE *stream;
int numread,numwritten,k,mark1;
char buf[100]="set 192.168.1.105:255.255.255.0,192.168.2.105:255.255.255.0,0";
char wbuf[200];
char *bp;
char *wp;
char para[100];
char gpara[200];
char *pa;
char *gp;
char temp[20];
char writ1[]="[network1]";
char writ2[]="\n[network2]";
char writ3[]="\n[canconfig]";
char show1[]="\n ip = ";
char show2[]="\n mask = ";
char show3[]="\n id = ";
char writ0[]="answer ";
/*if( NULL != (ini = fopen( "boot.ini", "r" )) )
{
printf( "File opened\n" );
fclose(ini);
}
else
{
printf( "File could not be opened\n" );
}*/
if( NULL != (stream = fopen( "boot.ini", "r" )) )
{
printf( "File(read) opened\n" );
numread=fread(gpara,sizeof(char),180,stream);
printf( "Number of items read = %d\n", numread );
printf( "Contents of buffer = %.125s\n", gpara );
/*格式转换*/
/* [network1]
ip = 192.168.24.105
mask = 255.255.255.0
[network2]
ip = 192.168.25.105
mask = 255.255.255.0
[canconfig]
id = 0
answer 192.168.1.105:255.255.255.0,192.168.2.105:255.255.0,1\0
*/
fclose( stream );
}
else
printf( "File could not be opened\n" );
if((stream = fopen( "boot.ini", "w" )) != NULL)
{
printf( "File(write) opened\n" );
//write格式处理
bp=buf;
wp=wbuf;
bp=bp+3;
while((*bp)==' ')
bp++;
if((*bp)!=' ')
{
strcpy(wp,writ1);
//get network1 ip
k=0;
while((*bp)!=':')
{
temp[k]=*bp;
k++;
bp++;
}
bp++;
temp[k]='\0';
k=0;
strcat(wp,show1);
strcat(wp,temp);
//get network1 mask
while((*bp)!=',')
{
temp[k]=*bp;
k++;
bp++;
}
bp++;
temp[k]='\0';
k=0;
strcat(wp,show2);
strcat(wp,temp);
strcat(wp,writ2);
//get network2 ip
while((*bp)!=':')
{
temp[k]=*bp;
k++;
bp++;
}
bp++;
temp[k]='\0';
k=0;
strcat(wp,show1);
strcat(wp,temp);
//get network2 mask
while((*bp)!=',')
{
temp[k]=*bp;
k++;
bp++;
}
bp++;
temp[k]='\0';
k=0;
strcat(wp,show2);
strcat(wp,temp);
strcat(wp,writ3);
//get canconfig id
while((*bp)!='\0')
{
temp[k]=*bp;
k++;
bp++;
}
temp[k]=*bp;
temp[k]='\0';
k=0;
strcat(wp,show3);
strcat(wp,temp);
}
numwritten = fwrite( wbuf, sizeof( char ), 180, stream );
printf( "Wrote %d items\n", numwritten );
// set 192.168.1.105:255.255.255.0,192.168.2.105:255.255.0,0
fclose( stream );
}
else
printf( "Problem opening the file\n" );
if( NULL != (stream = fopen( "boot.ini", "r" )) )
{
printf( "read the writed file\n" );
numread=fread(gpara,sizeof(char),180,stream);
printf( "Number of items read = %d\n", numread );
printf( "Contents of buffer = %.150s\n", gpara );
/*read 格式处理*/
pa=para;
gp=gpara;
strcpy(pa,writ0);
k=0;
mark1=0;
while((*gp)!='\0')
{
gp++;
if((*gp)=='.')
{
temp[k]=*gp;
k++;
}
if(mark1==1)
{
if((*gp)>='0'&&(*gp) {
temp[k]=*gp;
k++;
}
}
if(*gp=='m')
{
temp[k]=':';
temp[k+1]='\0';
strcat(pa,temp);
k=0;
}
if(*gp=='=')
mark1=1;
if(*gp=='[')
{
temp[k]=',';
temp[k+1]='\0';
strcat(pa,temp);
k=0;
mark1=0;
}
}
temp[k]=*gp;
strcat(pa,temp);
printf( "Contents of final = %s\n", para );
/*格式转换*/
/* [network1]
ip = 192.168.24.105
mask = 255.255.255.0
[network2]
ip = 192.168.25.105
mask = 255.255.255.0
[canconfig]
id = 0
*/
fclose( stream );
}
else
printf( "File could not be opened\n" );
}