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

【基于CAPL进行TXT文件读取】—2.使用指令将读取的文件内容发送到trace

文章目录

  • 1.概述
  • 2.具体脚本

1.概述

上一篇文章讲到怎么从TXT文件中读取具体内容,这篇文章主要讲解读取到的内容 怎么使用通过使用诊断报文的形式发送到trace窗口中。提供一个实例仅供参考使用。

2.具体脚本

TXT内容:
在这里插入图片描述

/@!Encoding:936/
includes
{
}
variables
{
message 0x6F4 meg;
}
On Start
//On Start
{
int j;
char content[100]; // 定义字符数组,用于存储读取的内容(缓冲区)
dword fileHandle;  // 定义文件句柄变量
long  i;
long idx;
long val;
byte  txtBuf[8];
byte  byteCnt;
byte low;
byte high;
char tok[3];
long tokLen;
char c;
// 1. 打开文件
fileHandle = openFileRead("E:\T\11.txt", 0);
// 判断文件是否成功打开(非零表示成功)
if (fileHandle != 0)
{
// 2. 读取一行内容(使用fileGetsStringz去除换行符)
if (fileGetStringSZ(content, elcount(content), fileHandle) == 1)
{write("不保留换行符,读取到的内容为: %s", content); // 打印读取的内容/* 1. 按空格拆十六进制字符串 */
idx = 0;                 // 当前在 content[] 的位置
byteCnt = 0;             // 已解析出的字节数
while (byteCnt < 8 && content[idx] != '\0')
{/* 跳过空格 */while (content[idx] == ' ') ++idx;/* 高 4 位 */c = content[idx];if (c == '\0') break;if (c >= '0' && c <= '9') high = c - '0';else if (c >= 'A' && c <= 'F') high = c - 'A' + 10;else if (c >= 'a' && c <= 'f') high = c - 'a' + 10;else break;                 // 非法字符直接结束++idx;/* 低 4 位 */c = content[idx];if (c >= '0' && c <= '9') low = c - '0';else if (c >= 'A' && c <= 'F') low = c - 'A' + 10;else if (c >= 'a' && c <= 'f') low = c - 'a' + 10;else break;++idx;txtBuf[byteCnt] = (high << 4) | low;++byteCnt;}}// 3. 关闭文件,释放资源
fileClose(fileHandle);/======================使用诊断报文进行内容发送=====================================/meg.dlc=8;meg.byte(0) = byteCnt;              // 长度for (idx = 0; idx < byteCnt; ++idx)meg.byte(idx + 1) = txtBuf[idx];  // 数据for (idx = byteCnt + 1; idx < 8; ++idx)meg.byte(idx) = 0;                // 补 0output(meg);}
else
{
write("文件打开失败!"); // 处理打开失败的情况
}
}

#3.运行结果

在这里插入图片描述

http://www.dtcms.com/a/515936.html

相关文章:

  • 一万个为什么:汉语词性对NLP的作用
  • Python开发:BackgroundTasks和asyncio.create_task()的区别
  • InnoDB 独立表空间(ibd 文件)迁移实战指南
  • 22_AI智能体开发架构搭建之基于Redis构建高性能AI对话记忆存储服务实践
  • SIMPLE
  • 企业专业网站建设wordpress炫酷背景
  • MTPA算法原理及仿真验证
  • 【记录62】网站输入框搜索内容页面定位
  • 2025年新版ADB工具箱下载+驱动+ADB指令集+fastboot刷机ROOT工具
  • 上海网站建设平台站霸网络快速提升关键词排名软件
  • 【Android】从源码角度理解Handler机制
  • docker技术之部署docker
  • node框架做网站国外浏览器推荐
  • 悬赏平台 wordpress免费网站优化怎么做
  • java数据结构--LinkedList与链表
  • 【笔记--如何安装python环境】
  • 汇川H5U 威纶通HMI双仿真编程
  • 平均指数移动(EMA)
  • 可灵AI邀请码
  • 做外贸的网站怎么建立矿大师德建设网站
  • C语言需要掌握的基础知识点之前缀和
  • Java Optional orElse orElseGet orElseThrow()
  • windows10 wordpress十堰seo优化
  • 优选算法:01 双指针巧解移动零问题
  • 消息队列Kafka
  • 做游戏陪玩网站连锁销售网站制作
  • 【数字逻辑】数字逻辑实验实战:74HC151实现逻辑函数+74HC138搭全加器(附接线步骤+避坑指南)
  • Ubuntu上vue3 vite使用MBTiles搭建地图服务器
  • CClink转EtherCAT协议转换落地——汇川PLC管控球磨机CClink伺服案例
  • wordpress handsome长沙seo免费诊断