util.c
上传用户:topscale
上传日期:2007-01-08
资源大小:9k
文件大小:4k
源码类别:

数据库系统

开发平台:

C/C++

  1. /*
  2.  copyright: Paladin of http://www.programsalon.com
  3. */
  4. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include <time.h> #include "../../global/err.h" char *GetFilePath(char *file, char *path) {   int i, len =strlen(file);   for(i =len-1; i >-1; i--)     if(file[i] =='\' || file[i] =='/' || file[i] ==':') break;   if(i ==0) strcpy(path, ".");   else   {     strcpy(path, file);     path[i] =0;   }   return path; } char *GetFileName(char *file) {   int i, len =strlen(file);   for(i =len-1; i >-1; i--)     if(file[i] =='\' || file[i] =='/' || file[i] ==':') break;   if(i ==0) return file;   else return &file[i+1]; } char *del_all_spaces(char *p)  /* I>3}KySP?U8q */ {   char buf[2000];   char *p1 =&buf[0], *pp =p;   while(*pp)   {     if(*pp !=' ') *p1++ =*pp;     pp++;   }   *p1 =0;   strcpy(p, buf);   return p; } char *del_lr_spaces(char *pbuf)  /* I>3}WsSR5D?U8q */ {   char *p =pbuf;   int i =0;   i =0;   while(*p ==' ') p++;   strcpy(pbuf, p);   i =strlen(pbuf);   while(i >=0 && *(p + i-1) ==' ') i--;   *(p+i) =0;   return pbuf; } char *del_rn(char *pbuf) {   char *p;   if((p =strchr(pbuf, 'r')) !=NULL) *p =0;   if((p =strchr(pbuf, 'n')) !=NULL) *p =0;   return pbuf; } int write_log(char *log_file, char *format, ...) {   va_list args;   char temp[6000];   FILE *fp =NULL;   time_t t;   struct tm *ptm;   time(&t);   ptm =localtime(&t);   if((fp =fopen(log_file, "a")) ==NULL)     return EOPENFILE;   va_start(args, format);   vsprintf(temp, format, args);   va_end(args);   if(temp[0] && temp[strlen(temp)-1] =='n')     temp[strlen(temp)-1] =0;   fprintf(fp, "%02d.%02d %02d:%02d:%02d - %sn", ptm->tm_mon+1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec, temp);   fclose(fp);   printf("%sn", temp);   return 0; } int read_config_string(char *config_file, char *item, char *str_buf) {   FILE *fp =NULL;   char buf[256], *p;   if((fp =fopen(config_file, "r")) ==NULL)   {     printf("open file %s failed!n", config_file);     return EOPENFILE;   }   while(!feof(fp) && fgets(buf, sizeof(buf), fp) !=NULL)   {     if(buf[0] =='#') continue;     if(!strncmp(buf, item, strlen(item)))     {       del_rn(buf);       p =strchr(buf, '=');       if(p ==NULL) continue;       p++;       p =del_lr_spaces(p);       fclose(fp);       strcpy(str_buf, p);       return 0;     }   }   fclose(fp);   return ENOTFOUND; } int read_config_int(char *config_file, char *item, int *int_buf) {   char buf[256];   if(read_config_string(config_file, item, buf) <0) return ENOTFOUND;   else     *int_buf =atoi(buf);   return *int_buf; } int write_config_string(char *config_file, char *item, char *str_buf) {   FILE *fp, *fp1;   char file_temp[128], buf[2000];      sprintf(file_temp, "%s.T", config_file);   if((fp =fopen(config_file, "r")) ==NULL)   {     if((fp =fopen(config_file, "w")) ==NULL)       return EOPENFILE;     fprintf(fp, "%s=%sn", item, str_buf);     fclose(fp);     return 0;   }   if((fp1 =fopen(file_temp, "a")) ==NULL)   {     fclose(fp);     return ECREATEFILE;   }   while(!feof(fp) && fgets(buf, sizeof(buf), fp) !=NULL)   {     if(!strncmp(buf, item, strlen(item)))       fprintf(fp1, "%s=%sn", item, str_buf);     else fprintf(fp1, buf);   }   fclose(fp);   fclose(fp1);   if(remove(config_file) !=0)     return EREMOVEFILE;   if(rename(file_temp, config_file) !=0)     return ERENAMEFILE;   return 0; } int write_config_int(char *config_file, char *item, int i) {   char temp[20];   sprintf(temp, "%d", i);   return write_config_string(config_file, item, temp); } char *upper_case(char *str) {   char *p =str;   while(*p)   {     if(*p >='a' && *p <='z') *p =*p -'a'+'A';     p++;   }   return str; } char *lower_case(char *str) {   char *p =str;   while(*p)   {     if(*p >='A' && *p <='Z') *p =*p-'A' +'a';     p++;   }   return str;   } int strcmpi(char *s1, char *s2) {   char ls1[2000], ls2[2000];   strcpy(ls1, s1);   strcpy(ls2, s2);   return strcmp(lower_case(ls1), lower_case(ls2)); }