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

CAPL编程_03

1_文件操作的相关函数:

读文本文件内容

  • 读取文本文件操作的三部曲

    1)打开文件 —— openFileRead ( )
    2)逐行读取 ——  fileGetString ( ) 、fileGetStringSZ ( )
    3)关闭文件 ——  fileClose ( )

char content[100];   // 写入数据
dword fh;   //句柄//文本字符的数据用0(0代表覆盖写入),二进制(字节)数据用1
//文本数据不想被覆盖用2(2代表追加写入),二进制用3
fh = openFileRead("Data.txt",0);fileGetstring(content,elCount(content),fh);
fileClose(fh);   //释放资源,关闭写入 
on key 'a'
{char cont[100];  // 装读取到的一行文本的字符数组dword fileHandle;  //代表打开的文件的引用句柄//打开指定的文件,以字符模式读取fileHandle = openFileRead("Files/Data.txt",0);   //文本字符的数据用0,二进制(字节)数据用1//读取文件中的一行文本内容,存入contwhile(fileGetstringSZ(cont,elCount(cont),fileHandle) == 1 ){write("读取到的一行内容为: %s",cont);}write("\n **************文件内容已经读取完毕*********");//关闭文件,以释放资源fileClose(fileHandle);
}// 注意:代码中有中文的话会读取失败!!!

写入文本文件

  • 写入文本文件的三部曲

    1)打开文件 —— openFileWrite ( )
    2)写入内容 ——  filePutString ( )
    3)关闭文件 ——  fileClose ( )

char info[100] = "hello";   // 写入数据
dword fh;   //句柄//文本字符的数据用0(0代表覆盖写入),二进制(字节)数据用1
//文本数据不想被覆盖用2(2代表追加写入),二进制用3
fh = openFileWrite("Data.txt",0);  filePutString(info,elCount(info),fh);
fileClose(fh);     //释放资源,关闭资源
on key 'a'
{//定义了一个字符数组 data//此处的'/n'代表换行符char data[100] = "VehicleSpeed is 90km/h \n" ;   //定义一个名为 fileHandle 的变量,类型是 dword,用于保存打开文件后的文件句柄。dword fileHandle;//定义一个 long 类型的变量 writeResult,用来保存写入文件的结果。long writeResult;//打开文件,用于写入文本数据,如果文件不存在,会自动创建,// 0表示覆盖写入的值, 2表示追加写入 fileHandle = openFileWrite("Files/Result.txt",0);  // 向文件中写入字符串内容//向文件中写入字符串内容 writeResult = filePutstring(data,elCount(data),fileHandle );write("写入的结果(filePutString的返回值) : %d", writeResult):// 关闭文件fileClose(fileHandle);}




2_CANoe日志记录“启停”的控制函数

1)“启动”日志记录 —— startLogging
2)“停止”日志记录 —— stopLogging

//“启动”日志记录 —— startLoggingon signal XXX
{i£(条件){startLogging();}else{stopLogging();}
}

示例:“启动”日志记录 —— startLogging

// 当大灯(HeadLight)信号变化时,控制日志记录的启停
// 大灯打开(信号值为1),启动日志记录
// 大灯熄灭(信号值为0),停止日志记录
On signal HeadLight
{i£(this == 1 ){startLogging();   // 启动日志记录}else{stopLogging();   //停止日志记录}
}

//多个日志记录模块
startLogging();   //主要用于启动全部的日志记录模块
startLogging("Logging名字");
startLogging("Logging名字",前置时间);stopLogging();    //主要用于停止全部的日志记录模块
stopLogging("Logging名字");
stopLogging("Logging名字",后置时间);




3_CAPL编程——数据类型转换的相关函数

1ltoalong转为字符串
2atol字符串转为long
3atodbl字符串转为double(双精度浮点数)
4strtol字符串转为long
5strtod字符串转为double
on key 'a' 
{char rpm[10];long spd;double temp;double rpm2;// 1. ltoa   long转为字符串ltoa(2000,rpm,5);  //将整数2000转为换字符串 "2000" 存至rpm中,10进制write("引擎转速为: %s 转/分钟", rpm);ltoa(2000,rpm,16);  //将整数 2000 转为换字符串 "7D0" 存至rpm中,16进制write("引擎转速为: 0x%s 转/分钟",rpm);// 2.atol	    字符串转为longspd = atol("118");  // 将字符串转为整数,存至spd,10进制write("\n车速为: %d km/h",spd);spd = atol("0x6F");  //将字符串转为整数,存至spd,16进制write("车速为: %d km/h",spd);spd = atol("2147483647");write(""2147483647"转为整数后为: %d",spd);spd = atol("小鬼真帅");  //这种字符串就转换不了write(""小鬼真帅"转为整数后为: %d",spd);  //结果为 :0spd = atol("24小鬼真6");  //这种只会转换一部分write(""小鬼真帅"转为整数后为: %d",spd);  //结果为 :24// 3.atodbl	     字符串转为double(双精度浮点数)temp = atodbl("16.5");  // 将字符串转为浮点数write("\n车内温度: %.1f摄氏度",temp);rpm2= atodbl("3.2E3");  // 将字符串转为浮点数(支持科学计数法)write("\n引擎转速: %.1f转/分钟",temp);// 4.strtol	          字符串转为longres = strtol("125   117",spd);  //将字符串转为整数,存至spdwrite("\n 车速值为: %d km/h。函数的返回值为: %d",spd,res);res = strtol("125   117",res,spd);  //将字符串转为整数,存至spdwrite("\n 车速值为: %d km/h。函数的返回值为: %d",spd,res);// 5.strtod	          字符串转为doubleres = strtod("3.5   4.2",temp);  //将字符串转为浮点数,存至tempwrite("\n 温度值为: %.1f摄氏度。函数的返回值为: %d",temp,res);}

注:只有第1函数是把整数转换成字符串,后面2345函数都是把字符串转成数字;

2 3 是把字符串分别转成整数或者说浮点数

4 5 是把目标的结果作为参数传进去,他的返回值代表转出来的情况




4_CAPL编程——字符串处理的相关函数

  • 1)
1strlen求字符串的长度(字节数)
2mbstrlen求字符串的长度(字符数)
3strncat字符串的拼接
4snprintf格式化字符串
on key 'a'
{char result[50] = "Hello";  // 3. 的用法//4.的用法char buffer[100];word vehSpeed = 80;float temp = 22.5;// 1	strlen	     求字符串的长度(字节数)write("用strlen计算字符串[Hello]的长度为:%d",strlen("Hello"));  //输出:5  //纯英文write("用strlen计算字符串[OK小鬼]的长度为:%d",strlen("OK小鬼")); //输出:8 //这是因为编码器不同,一个中文会占三个字节,解决方法用mbstrlen// 2	mbstrlen	     求字符串的长度(字符数)write("用mbstrlen计算字符串[Hello]的长度为:%d",mbstrlen("Hello"));  //输出:5write("用mbstrlen计算字符串[OK小鬼]的长度为:%d",mbstrlen("OK小鬼")); //输出:4   //此时可以输入中文// 3	strncat	          字符串的拼接//17指的是整个字符串能拼出来的最大长度,需要减去Hello的五个strncat(result,", everyone!",17);   //需要加一个末尾空字符write("\n 使用strncat拼接的结果是: [%s]。字符串的长度: %d",result,strlen(result));//输出:使用strncat拼接的结果是:[hello,ev]。字符串的长度:9// 4	 snprintf	      格式化字符串snprintf(buffer,elCount(buffer),"当前车速为 %d km/h,车内温度为 %.1f°C",vehSpeed,temp);write(buffer);//输出:当前车速为 80 km/h,车内温度为 22.5°C"
}
  • 2)
1mbstrncmp比较两个字符串
2

mbstrstr

mbstrstr_off

查找字符串的位置
3mbsubstr_cpy截取字符串
on key 'a'
{long ret;char data[100] = "speed is 100km/h,100km/h,104km/h";char title[100];char spd1[100];char spd2[100];int index1;  //第一个逗号的索引int index2;  //第二个逗号的索引// 1	mbstrncmp	比较两个字符串   是否相等ret= mbstrncmp("love","love",4);write("mbstrncmp(\"love\",\"love\",4)的返回值为: %d",ret);// 输出:mbstrncmp("love","love",4)的返回值为: 0// 2	mbstrstr	mbstrstr_off  查找字符串出现的位置    ret = mbstrstr(data,",");write("mbstrstr(data,\",\")的返回值为:%d,ret);   //从索引0开始找起// 输出:mbstrstr(data,",")的返回值为:16ret = mbstrstr_off(data,ret+1,",");write("mbstrstr_off(data,ret+1,\",\")的返回值为:%d,ret); //输出:mbstrstr_off(data,ret+1,",")的返回值为:24   //未找到会返回-1// 3	mbsubstr_cpy	截取字符串index1= mbstrstr(data,",");   //查找 data 中第一个逗号的索引index2= mbstrstr_off(data,index1+1,",");   //查找 data 中第二个逗号的索引mbsubstr_cpy(title,data,0,index1);  //截取第一个逗号之前的部分write("\n用例标题:%s",title);//输出:用例标题:speed is 100km/h// 截取第一个逗号之后,到第二个逗号之前的部分mbsubstr_cpy(spd1,data,index1+1,index2-index1-1);write("车速信号:%s",spd1);//输出:车速信号:100km/h//截取第二个逗号之后到最后的部分mbsubstr_cpy(spd2,data,index2+1,mbstrlen(date)-index2-1);write("显示车速:%s",spd2);//输出:显示车速:104km/h
}




5_CAPL编程——时间处理的相关函数

1

timeNow

timeNowNS(NS 纳秒)

获取测量的时长
2getLocalTime获取当前的时间(计算机)
on key 'a'
{dword res;float res2;long tm[9];// 1 	  timeNow       timeNowNS(NS 纳秒)     	获取测量的时长// timeNow 函数返回从测量开始到现在经过的时长(单位是10微妙)res =timeNow();write("timeNow()的返回值为: %d微秒  %.3f秒" ,res,res / 100000.0);// timeNowNS 函数返回从测量开始到现在经过的时长(单位是1纳秒)res2 =timeNowNS();write("timeNowNS()的返回值为: %f纳秒" ,res2);// 2	 getLocalTime	  获取当前的时间(计算机)// getLocalTime 函数获取本地的当前时间(计算出当前时间的各个字段)  // 调用完成后,tm[0]秒, tm[1]分,tm[2]时, tm[3]日, tm[4]月, tm[5]年//            tm[6]周几(0~6)  tm[7]一年中第XX天  getLocalTime(tm);write("%d年%d月%d日 %d时%d分%d秒  星期: %d,tm[5]+1900, tm[4]+1, tm[3], tm[2], tm[1], tm[0], tm[6]")
}

以上是一些语言基础和常用的内置函数。



希望对你有所帮助,谢谢观看。

相关文章:

CAPL编程_03

1_文件操作的相关函数: 读文本文件内容 读取文本文件操作的三部曲 1)打开文件 —— openFileRead ( ) 2)逐行读取 —— fileGetString ( ) 、fileGetStringSZ ( ) 3)关闭文件 —— fileClose ( ) char content[100];…...

网络准入控制系统:2025年网络安全的坚固防线

在当今数字化时代,网络安全已成为至关重要的议题。阳途网络准入控制系统作为保障网络安全的关键机制,发挥着不可替代的作用。 阳途网络准入控制系统核心目的在于确保只有合法、合规的设备与用户能够接入网络。从本质上讲,它通过一系列技术手段…...

【音视频】⾳频处理基本概念及⾳频重采样

一、重采样 1.1 什么是重采样 所谓的重采样,就是改变⾳频的采样率、sample format、声道数等参数,使之按照我们期望的参数输出。 1.2 为什么要重采样 为什么要重采样? 当然是原有的⾳频参数不满⾜我们的需求,⽐如在FFmpeg解码⾳频的时候…...

自然语言处理将如何颠覆未来教育?个性化学习新纪元

教育领域正经历着自印刷术发明以来最深刻的变革。自然语言处理(NLP)技术突破传统教育框架的桎梏,正在重塑人类知识传递的基本范式。这场变革的实质不在于教学工具的数字化升级,而在于重新定义了"教"与"学"的本…...

4月25日星期五今日早报简报微语报早读

4月25日星期五,农历三月廿八,早报#微语早读。 1、祝贺!神舟二十号载人飞船发射取得圆满成功; 2、文旅部:今年一季度国内出游人次17.94亿,同比增长26.4%; 3、2025五一档新片预售票房破1000万&…...

秒级到毫秒:BFD的速度革命

一、BFD技术概述 ​​双向转发检测(BFD)​​是一种轻量级的网络协议,专门用于快速检测、监控网络链路或IP路由的连通性状态。作为网络领域的"心跳检测器",BFD通过毫秒级(默认1000ms)的快速探测机…...

systemctl 命令详解与常见问题解决

在 Linux 系统中,service 命令和 chkconfig 命令一直用于管理服务,但随着 systemd 的引入,systemctl 命令逐渐成为主流。systemctl 命令不仅功能强大,而且使用简单。本文将详细介绍 systemctl 命令的作用以及常见问题的解决方法。…...

5.6 Microsoft Semantic Kernel:专注于将LLM集成到现有应用中的框架

5.6.1 Semantic Kernel概述 Microsoft Semantic Kernel(以下简称SK)是一个开源的软件开发工具包(SDK),旨在帮助开发者将大型语言模型(LLM)无缝集成到现有的应用程序中。它支持C#、Python和Java…...

vite+vue构建的网站项目localhost:5173打不开

原因:关掉了cmd命令提示符,那个端口就没有被配置上,打开就是这样的。 解决方法:重新在工作目录下打开cmd,输入npm run dev重新启动项目。 重新出现这样的界面说明已经成功启动项目,再次在浏览器中刷新并输入…...

电脑屏幕录制软件Captura源码编译(Win10,VS2022)

屏幕录像的意义: 教育教学方面 制作教学资源:教师可以通过录制屏幕来制作教学视频,演示软件操作、讲解复杂的知识点等。学生可以随时观看这些视频,便于复习和巩固知识,尤其对于一些抽象的概念或难以在课堂上一次性掌握…...

【版本控制】SVN + TortoiseSVN版本管理实用教程(附安装+开发常用操作)

摘要: 本文将带你从零开始掌握 SVN 版本控制系统,结合 TortoiseSVN 图形客户端工具,深入学习包括安装、检出、提交、更新、回滚、冲突解决等常用开发操作,快速上手团队协作! 🧩 什么是 SVN? SV…...

常见网络安全攻击类型深度剖析(二):SQL注入攻击——原理、漏洞利用演示与代码加固方法

常见网络安全攻击类型深度剖析(二):SQL注入攻击——原理、漏洞利用演示与代码加固方法 在Web应用安全领域,SQL注入(SQL Injection)是历史最悠久、危害最广泛的攻击类型之一。据OWASP(开放式Web应用安全项目)统计,SQL注入连续多年稳居“OWASP Top 10”漏洞榜单前列,每…...

DeepSeek智能时空数据分析(三):专业级地理数据可视化赏析-《杭州市国土空间总体规划(2021-2035年)》

序言:时空数据分析很有用,但是GIS/时空数据库技术门槛太高 时空数据分析在优化业务运营中至关重要,然而,三大挑战仍制约其发展:技术门槛高,需融合GIS理论、SQL开发与时空数据库等多领域知识;空…...

day49—双指针+贪心—验证回文串(LeetCode-680)

题目描述 给你一个字符串 s,最多 可以从中删除一个字符。 请你判断 s 是否能成为回文字符串:如果能,返回 true ;否则,返回 false 。 示例 1: 输入:s "aba" 输出:true…...

AI电视里的达摩

2025年,所有电视都搭载了AI功能,所有电视厂商都在宣传AI能力。但问题是,消费者依旧没有对AI电视做出什么积极的回应。“AI电视是鸡肋”“AI只是电视的又一轮泡沫”等观点层出不穷。 为什么明明AI技术能够解决电视的很多问题,但AI电…...

算力网络(CFN)在跨校联合科研中的应用:安全性挑战与联邦调度实践

引言:科研协作的算力困境 上海交通大学与麻省理工学院联合开展的高能物理模拟实验,因算力资源分配不均导致部分节点连续72小时处于空转状态。这个典型案例揭示了当前跨机构科研协作的痛点:‌算力资源无法实现安全可信的细粒度共享‌。算力网…...

面向对象编程核心:封装、继承、多态与 static 关键字深度解析

面向对象编程核心:封装、继承、多态与 static 关键字深度解析 一、封装:数据安全与接口规范 1. 封装的本质与作用 核心定义:将数据(属性)与操作数据的方法(行为)绑定在类中,隐藏内…...

c++进阶——类与继承

文章目录 继承继承的基本概念继承的基本定义继承方式继承的一些注意事项 继承类模板 基类和派生类之间的转换继承中的作用域派生类的默认成员函数默认构造函数拷贝构造赋值重载析构函数默认成员函数总结 不能被继承的类继承和友元继承与静态成员多继承及其菱形继承问题继承模型…...

【CODEMATE】进制转换(transform) 粤港澳青少年信息学创新大赛 C/C++/Python 解题思路

目录 问题描述做题思路,解决过程思路:踩过的坑:核心代码C 语言 / C 切片:C 语言 / C 判断 ‘A’ 数量:Python 切片:Python 判断 ‘A’ 数量: 完整代码C 语言 完整代码C 完整代码Python 完整代码…...

window和ubuntu自签证书

window下 以管理员身份 运行 Windows PowerShell # CN192.168.0.100 (换成自己的IP或者域名) # O(组织) OU(组织单位) # Cert:\LocalMachine\My:证书存储位置 # test_10:自定义证书名称 .AddYears(10): 证书过期时间 10 年 $cert New-SelfSi…...

ES历史版本下载

下载地址 Past Releases of Elastic Stack Software | Elastic 安装步骤参考 windows 安装 Elasticsearch_windows安装elasticsearch-CSDN博客...

技术面试一面标准流程

0. 自我介绍 ...... 1. 拷打项目 项目干了啥? 难点是啥? 问项目中用到的东西? 扩展? ...... 2. 基础知识 数据结构、C基础、设计模式 数据结构: 堆? unordered_map 和 布隆过滤器 都是用于查找…...

第14篇:Linux设备驱动程序入门<一>

Q:如何简单的理解DE1-SoC-UP Linux系统的设备驱动程序? A:设备驱动程序(Device Driver),简称驱动程序(Driver)。DE1-SoC-UP Linux系统中的设备驱动程序允许系统软件与DE1-SoC开发板…...

软件设计模式与体系结构:基于Java实现管道-过滤器架构

软件设计模式与体系结构:基于Java实现管道-过滤器架构 前言 在软件架构中,数据流风格是一种常见的架构模式,特别适用于需要对数据进行一系列处理的场景。管道-过滤器(Pipe and Filter)*架构是数据流风格的典型代表&a…...

Node.js 包管理工具介绍

Node.js 包管理工具介绍 Node.js 是一个基于 Chrome V8 JavaScript 引擎的服务器端运行环境,它允许开发者使用 JavaScript 进行后端开发。为了方便管理和维护项目中使用的第三方库和模块,Node.js 提供了多种包管理工具。本文将详细介绍几种常用的 Node.…...

Node.js 应用场景

Node.js 应用场景 引言 Node.js 是一个基于 Chrome V8 JavaScript 引擎的开源、跨平台 JavaScript 运行环境。它主要用于服务器端开发,通过非阻塞 I/O 模型实现了高并发处理能力。本文将详细介绍 Node.js 的应用场景,帮助你了解其在实际项目中的应用。…...

C/C++线程详解

一、C语言线程创建&#xff08;POSIX线程&#xff09; 1. 基本创建方法 POSIX线程&#xff08;pthread&#xff09;是C语言中创建线程的标准API&#xff1a; #include <pthread.h> #include <stdio.h>void* thread_func(void* arg) {printf("Thread runnin…...

动态ip与静态ip的概念、区别、应用场景

动态ip与静态ip的区别 前言 一、IP地址的概念和作用 1.1、IP地址的定义 1.2、IP地址的作用 二、动态IP和静态IP的区别 2.1、动态IP和静态IP的定义 2.2、动态IP和静态IP的特点 2.3、动态IP和静态IP的优缺点比较 三、动态IP和静态IP的应用场景 3.1. 动态IP的应用场景 3.2. 静态IP…...

P12167 [蓝桥杯 2025 省 C/Python A] 倒水

P12167 [蓝桥杯 2025 省 C/Python A] 倒水 题目描述 小蓝有 n n n 个装了水的瓶子&#xff0c;从左到右摆放&#xff0c;第 i i i 个瓶子里装有 a i a_i ai​ 单位的水。为了美观&#xff0c;小蓝将水循环染成了 k k k 种颜色&#xff0c;也就是说&#xff0c;第 i i i …...

Appium自动化开发环境搭建

自动化 文章目录 自动化前言 前言 Appium是一款开源工具&#xff0c;用于自动化iOS、Android和Windows桌面平台上的本地、移动web和混合应用程序。原生应用是指那些使用iOS、Android或Windows sdk编写的应用。移动网页应用是通过移动浏览器访问的网页应用(appum支持iOS和Chrom…...

【金仓数据库征文】金仓数据库:国产化浪潮下的技术突破与行业实践

目录 前言 技术突破&#xff1a;从追赶国际到引领创新 行业深耕&#xff1a;从医疗到航空航天的多领域落地 事务管理与ACID特性 事务管理概述 索引优化与性能调优 安全性与备份恢复策略 Json构造函数 总结 前言 在数字化转型的全球趋势下&#xff0c;数据库作为信息系…...

计算机操作系统

1. T0 时刻是否为安全状态&#xff1f; 步骤 1: 计算当前可用资源 总资源数量&#xff1a; A: 17B: 5C: 20 已分配资源&#xff1a; P1: (2, 1, 2)P2: (4, 0, 2)P3: (4, 0, 5)P4: (2, 0, 4)P5: (3, 1, 4) 当前可用资源&#xff1a; A: 17 - (2 4 4 2 3) 2B: 5 - (1 0 …...

linux系统问题杂谈

1.配置好anaconda之后&#xff0c;在一个终端中编辑好环境变量之后能够正常使用conda命令&#xff0c;但是新打开一个中断使用conda命令报错"无法识别conda"。 原因&#xff1a;使用“export PATH"/home/username/anaconda3/bin:$PATH"命令&#xff0c;临…...

百度打响第一枪!通用超级智能体时代,真的来了

Create2025百度AI开发者大会在武汉举行&#xff0c;K哥受邀参加&#xff0c;看到了许多有趣的创新技术和产品。其中最令我印象深刻的是一款全新发布的通用超级智能体——心响App。 这款App通过多智能体复杂组合、协作&#xff0c;满足用户能够「一站式」解决复杂问题的使用诉求…...

FWFT_FIFO和Standard_FIFO对比仿真

在FPGA中使用FIFO时&#xff0c;如果使用FPGA厂商提供的FIFO IP&#xff0c;一般都会有First Word Fall Through FIFO和Standard FIFO类型选项&#xff0c;那么这两种FIFO有什么差异么。两种FIFO的端口是一样的&#xff0c;看不出区别&#xff0c;只有通过仿真&#xff0c;才能…...

【网络原理】TCP提升效率机制(二):流量控制和拥塞控制

目录 一. 前言 二. 流量控制 三. 拥塞控制 一. 前言 TCP的可靠传输依靠确认应答机制&#xff0c;超时重传机制是对确认应答的一种补充&#xff0c;解决了丢包问题 为了提高传输效率&#xff0c;避免大量的时间都浪费在等待应答的过程&#xff0c;故引入了滑动窗口机制&…...

DeepSeek+Cline:开启自动化编程新纪元

目录 一、引言&#xff1a;AI 编程时代的曙光二、认识 DeepSeek 和 Cline2.1 DeepSeek 是什么2.2 Cline 详解2.3 两者结合的魅力 三、DeepSeek Cline 安装与配置全流程3.1 安装 VS Code3.2 安装 Cline 插件3.3 获取 DeepSeek API Key3.4 配置 Cline 与 DeepSeek 连接 四、实战演…...

【RedisLockRegistry】分布式锁

RedisLockRegistry分布式锁 介绍 RedisLockRegistry‌是Spring框架提供的一种分布式锁机制&#xff0c;它基于Redis来实现对共享资源的保护&#xff0c;防止多个进程同时对同一资源进行修改&#xff0c;从而避免数据不一致或其他问题‌ 基本原理 RedisLockRegistry通过Redi…...

脚本批量启动Node服务器

创建文件start-projects.ps1 定义项目路径&#xff08;使用PowerShell中更可靠的路径表示方式&#xff09; $变量A “E:/XXXX文件根目录” $变量B “E:/XXXX” $变量C “E:/XXXX” 打开变量A并执行npm run dev Start-Process powershell -ArgumentList “-NoExit”, “-Com…...

使用命令行加密混淆C#程序

C#作为托管语言编译生成的IL中间代码极易被反编译工具还原源码。据统计&#xff0c;超过83%的商业软件曾遭遇过代码逆向风险&#xff0c;导致核心算法泄露、授权被跳过. 因此对于C#语言开发的程序来说, 在发布前进行混淆和加密非常有必要. 本文主要介绍如何使用恒盾C#混淆加密…...

零基础上手Python数据分析 (23):NumPy 数值计算基础 - 数据分析的加速“引擎”

写在前面 —— 超越原生 Python 列表,解锁高性能数值计算,深入理解 Pandas 的底层依赖 在前面一系列关于 Pandas 的学习中,我们已经领略了其在数据处理和分析方面的强大威力。我们学会了使用 DataFrame 和 Series 来高效地操作表格数据。但是,你是否好奇,Pandas 为何能够…...

深度学习实战106-大模型LLM+股票MCP Server的股票分析和投资建议应用场景

大家好,我是微学AI,今天给大家介绍一下深度学习实战106-大模型LLM+股票MCP Server的股票分析和投资建议应用场景。 文章目录 一、项目背景(一)大型语言模型(LLM)在金融领域的应用趋势(二)模型上下文协议(MCP)的兴起(三)大模型LLM+股票MCP服务的需求二、开发流程(…...

IDEA配置将Servlet真正布署到Tomcat

刚开始只能IDEA运行完Servlet web application 并保持IDEA运行才能通过浏览器访问到我的Servlet&#xff0c;跟想象中的不一样&#xff0c;不应该是IDEA运行完项目以后只要打开Tomcat就能访问吗&#xff1f;事实时运行完项目只要关掉IDEA就不能再访问到应用了&#xff0c;而且T…...

交叉编译paho.mqtt.c和paho.mqtt.cpp(MQTT客户端)

一、参考资料 【MQTT】paho.mqtt.cpp 库的 介绍、下载、交叉编译、MQTT客户端例子源码-CSDN博客 【MQTT】paho.mqtt.c 库的“介绍、下载、交叉编译” 详解&#xff0c;以及编写MQTT客户端例子源码-CSDN博客 二、准备工作 1. 重要说明 paho.mqtt.cpp与paho.mqtt.c&#xff…...

Prometheus中部署Alertmanager

部署Alertmanager 是 Prometheus 生态系统中的一个重要步骤&#xff0c;用于管理和处理 Prometheus生成的告警。Alertmanager和Prometheus Server一样均采用Golang实现&#xff0c;并且没有第三方依赖。一般来说我们可以通过以下几种方式来部署Alertmanager&#xff1a;二进制包…...

van-field组件设置为textarea属性被软键盘遮挡问题

在移动端van-field 输入框当type为text时&#xff0c;调出软键盘输入框会被顶上去&#xff0c;但type为textarea时不会被顶上去&#xff0c;可以用下面方法来实现&#xff1a; 1. 来2个van-field type为text的输入框z-index: 1 type为textarea的输入框z-index: 9999&#x…...

websheet之 编辑器

一、默认编辑器 该单元格编辑器是控件自带的编辑器&#xff0c;用户不需要指定。 二、下拉选择 该单元格编辑器是控件自带的编辑器的一种。该控件需要你指定下拉的数据源。在下面的例子中&#xff0c;我们给C3和C6单元格指定了币种的下拉选择编辑器。参数见&#xff1a;六、 参…...

氢气泄漏应急预案应包括哪些内容?

氢气泄漏应急预案是科研实验室中应对氢气泄漏事故的重要文件&#xff0c;其内容需要全面覆盖预防、检测、响应和善后处理等环节&#xff0c;确保在紧急情况下能够快速、有序地采取措施&#xff0c;最大限度地减少事故风险和损失。以下是氢气泄漏应急预案应包括的主要内容&#…...

【每天一个知识点】IPv4(互联网协议版本4)和IPv6(互联网协议版本6)

IPv4&#xff08;互联网协议版本4&#xff09;和IPv6&#xff08;互联网协议版本6&#xff09;是用于在互联网上标识和定位设备的两种主要协议。它们的主要区别在于地址空间、结构、以及一些附加功能。以下是两者的对比&#xff1a; 1. 地址长度 IPv4: 地址长度为32位&#xf…...

【高频考点精讲】前端构建工具对比:Webpack、Vite、Rollup和Parcel

前端构建工具大乱斗:Webpack、Vite、Rollup和Parcel谁是你的菜? 【初级】前端开发工程师面试100题(一) 【初级】前端开发工程师面试100题(二) 【初级】前端开发工程师的面试100题(速记版) 最近在后台收到不少同学提问:“老李啊,现在前端构建工具这么多,我该选哪个?…...