2019独角兽企业重金招聘Python工程师标准>>>

DBScarPro_DSTool.exe:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>void strInsert(char *str,char *des);/************************************************************************/
/* 功能:找寻DBScarPro需要添加的数据流                                  */
/************************************************************************/
void main()
{// 按任意键开始getchar();char *ds_item, *name_id_pre, *name_id, *ds_txt;FILE *fp_ds_item, *fp_ds_txt, *fp_result;ds_item = (char *)malloc(2048 * sizeof(char));     // 数据流条目name_id_pre = (char *)malloc(12 * sizeof(char));   // 从数据流ds_item读出的,注意'\0'name_id = (char *)malloc(21 * sizeof(char));      // 被变换过后NameId字符串ds_txt = (char *)malloc(2048 * sizeof(char));     // 要匹配的数据流文本// 内存申请失败if(ds_item == NULL || name_id_pre == NULL || name_id == NULL || ds_txt == NULL)exit(1);char* keyw[] = {"档位","燃油量","里程","水温","发动机机油温度","电瓶电压","车速","转速","瞬时油耗","ACC","遥控钥匙","驾驶员车门状态"};char* keyw_index[] = {"0x0015","0x0016","0x0017","0x0018","0x0019","0x001a","0x001b","0x001c","0x001d","0x001e","0x001f","0x0020"};int keyw_len = sizeof(keyw) / sizeof(keyw[0]);fp_ds_item = fopen("DSTRAEM_DATA.xml","r");fp_result = fopen("Result.xml","w");int cnt = 0;while(fgets(ds_item,2048,fp_ds_item) != NULL){char *nameId_pre = "NameID=";char *ds_item_p = ds_item;    // 活动指针if((ds_item_p = strstr(ds_item_p,nameId_pre)) != NULL) // 定位到NameID=之后ds_item_p += sizeof(char) * strlen(nameId_pre);elseexit(1);   // 异常退出char *name_id_pre_p = name_id_pre;int k = 0;while (k < 10)  // 得到NameID=后面的十位16进制数(包括0x){*(name_id_pre_p++) = *(ds_item_p++);++k;}*(name_id_pre_p++) = '\0';strInsert(name_id_pre,name_id);    // 0x00000717 to 0x00,0x00,0x07,0x17if(*name_id != '\n'){fp_ds_txt = fopen("..\\..\\..\\txt_lib\\MyCar\\DSTREAM_CN.txt","r");while(fgets(ds_txt,2048,fp_ds_txt) != NULL){if(strstr(ds_txt,name_id) != NULL)   // 找到NameId对应的数据流文本{for(int i = 0; i < keyw_len; i++){if(strstr(ds_txt, keyw[i]) != NULL)    // 被关键字匹配到{printf("NameID=%s\n",name_id_pre);printf("数据流文本内容:%s",ds_txt);printf("被匹配的数据流关键字:\"%s\"\n",keyw[i]);ds_item_p = ds_item; // 活动指针// 定位到Index=之后char *index_pre = "Index=";if((ds_item_p = strstr(ds_item_p,index_pre)) != NULL) ds_item_p += sizeof(char) * strlen(index_pre);elseexit(1);// 保留指针的引用,作为活动指针,而不改变原指针的指向char *keyw_index_p = keyw_index[i];int j = 0;while (j < 6)  // 替换Index{*(ds_item_p++) = *(keyw_index_p++);++j;}fprintf(fp_result,"%s",ds_item);printf("建议添加的数据流:\n%s\n",ds_item);++cnt;}}}}}}printf("总共有 %d 数据流条被匹配\n\n",cnt);printf("处理完成!!  请于本目录的Result.xml文件中查看处理结果\n\n");fclose(fp_result);fclose(fp_ds_txt);fclose(fp_ds_item);free(ds_item);ds_item = NULL;free(name_id_pre);name_id_pre = NULL;free(name_id);name_id = NULL;free(ds_txt);ds_txt = NULL;// 暂停system("pause");
}/************************************************************************/
/*  功能: 0x00000717 to 0x00,0x00,0x07,0x17                             */
/*  方法:除去前两位0x,后面的每隔两位插入一个",0x",后面的数字往后移位 */
/*        直到最后一个不加                                              */
/************************************************************************/
void strInsert(char *str,char *des)
{char *str_ins = ",0x";char *str_ins_tmp;str_ins_tmp = str_ins;char *str_tmp;str_tmp = str;char* des_tmp;des_tmp = des;*des_tmp++ = *str_tmp++;*des_tmp++ = *str_tmp++; // 前两位0xint i = 0;while(*str_tmp != '\0'){*des_tmp++ = *str_tmp++;++i;if(i%2 == 0 && i < 8) //每隔两位插入一个",0x",最后一个不加{while(*str_ins_tmp != '\0')  *des_tmp++ = *str_ins_tmp++;str_ins_tmp = str_ins;    // 指针复位}}*des_tmp++ = '\0';    // 结束符
}

DBScarPro_DSTool.BAT:

@echo offecho ===========================================================================
echo   功能:从MyCar中找寻DBScarPro需要的数据流
echo.
echo      准备工作:1.将priv_lib\MyCar\FunCfg.XML文件中现有系统的数据流全部提取
echo               到本目录的DSTRAEM_DATA.xml中
echo             2.将txt_lib\MyCar\DSTREAM_CN.txt命令变小写
echo               (UE列模式选择命令列,Ctrl+F5)
echo.
echo ============================================================================
echo.echo 确保做好准备工作, 按任意键开始DBScarPro_DSToolecho 请查看本路径地下的Result.xml文件@echo on

转载于:https://my.oschina.net/yaoqinwei/blog/163663

自己写小工具 让工作更简单更效率相关推荐

  1. 如何用python写小工具_用python写一个录音小工具

    Python的paramiko,wxPython库的应用 Sound eXchange 命令行 需求 最近在给一个做语音识别的项目做QA工作.众所周知,此类人工智能方面的项目都需要一些数据收集的工作. ...

  2. 通过SQL即可让监控分析更简单更高效

    1.前言 阿里时序时空数据库TSDB最新推出TSQL,支持标准SQL的语法和函数.用户使用熟悉的SQL,不仅仅查询更简单易用,用户还可以利用SQL强大的功能,实现更加复杂的计算分析. 2. 为什么需要 ...

  3. TSQL:让监控分析更简单更高效

    1. 前言 阿里时序时空数据库TSDB最新推出TSQL,支持标准SQL的语法和函数.用户使用熟悉的SQL,不仅仅查询更简单易用,用户还可以利用SQL强大的功能,实现更加复杂的计算分析. 2. 为什么需 ...

  4. 比KMP算法更简单更快的字符串匹配算法

    我想说一句"我日,我讨厌KMP!". KMP虽然经典,但是理解起来极其复杂,好不容易理解好了,便起码来巨麻烦! 老子就是今天图书馆在写了几个小时才勉强写了一个有bug的.效率不高的 ...

  5. 程序员写小工具方便老婆工作,离职时老板:人走,工具留下

  6. 51CTO.com 巅峰访谈:让远程接入访问变得更简单 更高效

    毫无疑问,在远程访问需求方面,SSL VPN技术在与IPsec的竞争中取得了胜利.Gartner报告称SSL VPN将成为大部分商业使用的.主要的远程接入方式.但是随着SSL VPN使用的增加,对接入 ...

  7. plotly----比matplotlib更简单更美观的交互式绘图python库

    文章目录 1. plotly介绍 2. 安装plotly Jupyterlab support(python 3.5+) 图片导出工具安装 nodejs相关安装 orca安装 3. 使用plotly ...

  8. Mybatis Plus最新代码生成器AutoGenerator,更简单更高效!

    一.概述 AutoGenerator 是 MyBatis Plus推出的代码生成器,可以快速生成Entity.Mapper.Mapper XML.Service.Controller等各个模块的代码, ...

  9. 毒蘑菇搜索,一个更简单更好用的主页。

    经过2周多的时间,利用闲暇时间,周六周日加班加点的写代码,毒蘑菇搜索终于新鲜出炉了,跟站搜搜一样可以根据网站名搜索网站并且一键直达,相当方便呐! 毒蘑菇搜索 操作说明

最新文章

  1. 再看nf_conntrack: table full问题
  2. Ranking relevance in yahoo search (2016)论文阅读
  3. hive load data inpath 空目录_走近大数据之Hive进阶(一、Hive数据的导入)
  4. 009_JMS中的事务
  5. 提高SQL语句的性能
  6. 可逆神经网络(Invertible Neural Networks)详细解析:让神经网络更加轻量化
  7. 直接启动SDK Manager: $ADNROID_HOME/tools/android
  8. JavaScript面试时候的坑洼沟洄——表达式与运算符
  9. 《零基础看得懂的C语言入门教程 》——(六)轻轻松松了解C语言的逻辑运算
  10. node.js 将文件目录读取 通过匿名函数自执行 将异步改为同步
  11. 陕西卫视《关中男人》观后感--女人之后是男人?
  12. linux共享文件夹开机自启,ubuntu16.04.6和 18.04添加开机启动脚本,重启后自动挂载vmware的共享文件夹...
  13. C#判断访问入口是移动端还是PC
  14. 《Microduino实战》——2.2 兼容Arduino系列产品
  15. 如何设计出令人惊叹的关卡:来自策划、美术与程序的标准
  16. 台式电脑打开计算机只有c盘是咋回事,电脑只有C盘是怎么回事
  17. Html中跳转到其他页面
  18. 怎么用计算机打游戏视频,网吧电脑可以边玩游戏边录视频吗?这样的方法很少人知道...
  19. mysql in数量限制_SQL语句中in的个数限制为1000
  20. cf英文名字格式好看的_格式好看的cf英语名字【三篇】

热门文章

  1. 事件监听函数addEvent
  2. [METER]-跨模态论文阅读笔记
  3. Windows10清理预留存储
  4. 两消两现指的是_细胞周期分为哪几个时期特点是什么
  5. Failed to execute goal org.apache.maven.plugins,clean failed: org/apache/maven/shared/utils/Os
  6. 【STM32】HAL库 STM32CubeMX教程十二---IIC(读取AT24C02 )
  7. 软件测试面试题:请你分别画出 OSI 的七层网络结构图和 TCP/IP 的四层结构图?
  8. CF 597A Divisibility
  9. 使用JDK自带keytool生成证书
  10. SHIP CONFIRM API