www.pudn.com > tyRecv.rar > file.c
#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)<='9') { 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" ); }