当前位置: 首页 > news >正文

cms网站如何修改黄山建设网站

cms网站如何修改,黄山建设网站,福州 网站建设 快搜网络,wordpress如何双语本文介绍作者写的一个小工具#xff0c;简单的代码中包含了C语言对字符串的处理技巧#xff0c;对文本文件的简单解析#xff0c;二进制文件的数据复制的方法#xff0c;以及格式化输出文本文件的示例。 工具的输入是如下内容的配置文件#xff1a; [plain] view plaincop…本文介绍作者写的一个小工具简单的代码中包含了C语言对字符串的处理技巧对文本文件的简单解析二进制文件的数据复制的方法以及格式化输出文本文件的示例。 工具的输入是如下内容的配置文件   [plain] view plaincopy ;资源管理器配置脚本    ;以行为单位每行不能超过255个字符  ;空行和以;开头的注释行会被忽略掉  ;每行都关联一个资源文件资源序号从0开始依次递增    .\img\img128x128.bin  .\snd\start.wav  .\img\sheis1.bin  .\snd\balloon.wav  .\img\sheis2.bin   工具的源代码贴在这里   [cpp] view plaincopy #include ctype.h  #include string.h  #include stdlib.h  #include stdio.h    /* 定义相关文件名 */  #define CONFIG_FILE_NAME        (config.txt)  #define RESPAK_FILE_NAME        (resmm.bin)  #define ADDRS_C_FILE_NAME       (resmm_addrs.c)    /* 定义配置行最大的字符数 */  #define LINE_CHARS      (255)  /* 定义复制文件数据时的缓冲区大小 */  #define BUF_SIZE        (8 * 1024)    /* 从配置行提取文件名 */  static char* extract_file_name(const char* line, char* file_name)  {      /* 过滤配置行左边的空格符 */      while(isspace(*line)){};      line--;      /* 忽略空行和注释行 */      if((*line  \0) || (*line  ;))          return NULL;        /* 提取文件名并去掉右边的空格符 */      strcpy(file_name, line);      {          char* p  file_name  strlen(file_name) - 1;          while(isspace(*p--)){};          p;          p;          *p  \0;      }        return file_name;  }    /* 扫描有效文件数 */  static int scan_file_count(FILE* cf)  {      char line[LINE_CHARS  1];      char file_name[LINE_CHARS  1];      int count  0;        while(!feof(cf))      {          fgets(line, LINE_CHARS, cf);          if(extract_file_name(line, file_name) ! NULL)              count;      }        return count;  }    /* 复制文件数据 */  static size_t copy_file_datas(FILE* pf, FILE* rf)  {      unsigned char buf[BUF_SIZE];      size_t total  0;      size_t len;        do{          len  fread(buf, sizeof(unsigned char), BUF_SIZE, rf);          fwrite(buf, sizeof(unsigned char), len, pf);          total  len;      }while(len  BUF_SIZE);        return total;  }    /* 主函数 */  int main(int argc, char* argv[])  {      FILE* cf;      FILE* pf;      FILE* rf;      int count;      size_t* lens;      size_t len;      unsigned int addr;      char line[LINE_CHARS  1];      char file_name[LINE_CHARS  1];      int i;        /* 打开配置文件并扫描有效文件数 */      if((cf  fopen(CONFIG_FILE_NAME, rt))  NULL)      {          printf(Can\t open %s!\n, CONFIG_FILE_NAME);          return -1;      }      count  scan_file_count(cf);      fseek(cf, 0L, SEEK_SET);        /* 打开资源包文件 */      if((pf  fopen(RESPAK_FILE_NAME, wb))  NULL)      {          printf(Can\t create %s!\n, RESPAK_FILE_NAME);          fclose(cf);          return -1;      }        /* 复制打包资源文件并统计其大小 */      if((lens  (size_t*)malloc(sizeof(size_t) * count))  NULL)      {          printf(No enough memory!\n);          fclose(pf);          fclose(cf);          return -1;      }      i  0;      while(!feof(cf))      {          fgets(line, LINE_CHARS, cf);          if(extract_file_name(line, file_name) ! NULL)          {              if((rf  fopen(file_name, rb))  NULL)              {                  printf(Can\t open %s!\n, file_name);                  fclose(pf);                  fclose(cf);                  return -1;              }              if((len  copy_file_datas(pf, rf))  0)              {                  printf(File %s is empty!\n, file_name);                  fclose(pf);                  fclose(cf);                  return -1;              }              lens[i]  len;              fclose(rf);          }      }      fclose(pf);      fclose(cf);        /* 打开地址描述的C语言源文件 */      if((cf  fopen(ADDRS_C_FILE_NAME, wt))  NULL)      {          printf(Can\t open %s!\n, ADDRS_C_FILE_NAME);          return -1;      }        /* 把各个资源的地址和长度信息写入C语言数组 */      fprintf(cf, #define RES_COUNT\t(%d)\n\n, count);      fprintf(cf, static const INT32U addrs[RES_COUNT]  \n{\n);      addr  0;      for(i  0; i  count; i)      {          fprintf(cf, \t\t0x%08x,\n, addr);          addr  lens[i];      }      fprintf(cf, };\n\n);      fprintf(cf, static const INT32U lens[RES_COUNT]  \n{\n);      for(i  0; i  count; i)          fprintf(cf, \t\t0x%08x,\n, lens[i]);      fprintf(cf, };);        fclose(cf);      free(lens);      return 0;  }   格式化输出的文本文件是这样的       [cpp] view plaincopy #define RES_COUNT   (5)    static const INT32U addrs[RES_COUNT]    {          0x00000000,          0x00008000,          0x0000889a,          0x0001089a,          0x0001219a,  };    static const INT32U lens[RES_COUNT]    {          0x00008000,          0x0000089a,          0x00008000,          0x00001900,          0x00008000,  };  转载于:https://www.cnblogs.com/pengkunfan/p/3486604.html
http://www.pierceye.com/news/154382/

相关文章:

  • 东莞政务网站建设方案wordpress三栏博客主题
  • 艺友网站建设网站需要的栏目
  • 教育类网站 前置审批重庆网站建设首选卓光
  • 宁波做网站哪家好个人做论坛网站怎么做
  • 公司网站建设北京电子设计工程期刊
  • 网站前端建设都需要什么c 网站开发案例详解
  • 无锡网站无忧网站建设
  • 最火高端网站设计厂家宁波新亚建设内部网站
  • 娱乐网站建设宁波网站建设多少钱一年
  • app制作器手机版下载网站关键词优化排名怎么做
  • 网站站外优化推广方式网站建设网站需要什么软件有哪些
  • 重庆建设厂招聘信息网站做坑网站需要
  • 光谷 网站建设公司海珠区住房和水务建设局网站
  • 公司做网站还是做appwordpress多文件传递变量
  • 网站教学苏州优化网站
  • 扁平化网站下载网站设计公司深圳
  • flash网站用什么做网站建设免费软件有哪些
  • 卖车网站投资网站建设
  • 网站开发过程 文档合肥婚恋网站建设
  • 网站自助建设目录更新 wordpress
  • 百度给做网站吗flash网站制作教程 下载
  • 化工销售怎么做网站wordpress 论坛功能
  • 网上做平面设计兼职不错的网站网站 seo优化
  • seo做的最好的网站设计专业
  • 顾家家居网站是哪个公司做的东莞软件有限公司
  • 云南做网站哪家好wordpress文章内多页效果
  • 上海做网站公司哪家好建筑公司有哪些部门和职位
  • 用front page2003做网站的导航条网站的站点建设分为
  • 开封网站建设zducmwordpress评论ajax
  • 电脑如何做网站空间西安网站建设sxyun