2311极语言高亮说明书
入门
安装目录下Sec.exe
为ide
.Sc
为编译器
.
.sec
为单文件二进制源码结构,.SEC
和.极
为多文件文本结构,命令行:cmd Sc.exe 源码路径
.
基础
整数
变量也可以是万能指针
,传送参数
,参数只有整数和小数
两种.
可在名称前面加@或&
符号取变量或函数名
指针地址,文本变量
只取地址
不用加.
变量
在小程序
片段之内的变量
是局部变量
,之外
是全局变量
.作用主要是用来存取数据,传递参数,算法运算
等等.
局部变量只有整数,小数,浮点和文本
这四种类型,变量类型
间可使用等号
相互转换,语法:变量一=变量二
,把右边变量类型
转换成左边
变量类型数据.
转换文本
时可以拼接
.转换数值
时可以用表达式
.
变量类型
变量类型:整数,小数,浮点和文本,布尔,字符,字节,整形,正整形,整数,小数,文本,浮点,日期,大数,类型,数据表
十六进制数字,用$或者0x
表示,$0到$FFFFFFFF
.
转义字符
略.可以用\
把单个文字
转换为编码值
.
整数 时间=0@2018-8-15 12:00;
整数 提示="提示消息";
文本 内容(16)="$374727774367008C7A";
内容="最终结果:" + 数值 ".总共" + 次数 "次"
查字符(str,\s);
$
时,16=>2
进制
如下,细节见说明书
.
运算符号和标点符号:+-*/|^&%?++--!=!=<><>>=<=>><<||&&?@._"$::#\''///**/$0x0#0$0@()[]{}
指针操作:@~[][]%[]&反引反引%反引&()()%()&%&()$()!()###@#()#[]##_[]_[]%_[]&_[]$_[]!_[]#.().%.&.$.!.#.+.++<>
语法:程序段/结束/子类/数据表/读取表/检索/加数组/清零/调用/新建/对象/创建对象/控件对象/导入/引入/重命名/常量/类型/导出/返回/如果/如果是/否则/判断/循环/循环在/循环于/循环数组/跳到/跳转/跳出/支持库/局部/保留/重置/销毁/置入/指令/传址/字节组/输出文件/列举/别名/程序版本/程序类型/程序资源/程序图标
.
语法示例
小程序(整数 a,文本b,字节 c);
子类{整数 变量1,变量2;小程序 登陆(账号)...结束;}数据表{整数 a,文本 b[16],字节 c;}自定义表头结构
读取表(数据库名,数据表头,[长度]);
检索(变量名,查询值,[长度]);
加数组(变量名,表名,[字段名]);
清零(变量名,长度,[设定值]);
调用 变量名(参数...);//动态调用dll.
角色=新建 玩家类(等级=1,性别=0);
对象 名称=对象名;
名称=创建对象 "WinHttp.WinHttpRequest.5.1"
对象名=控件对象 窗口名;控件对象 对象名,窗口名.
导入 StrStrI 支持库 "SHELL32.DLL",2;//有2个参数的函数
引入 "Windows.inc";
重命名 发送消息=SendMessage;//转换英文为中文.
常量 内容="SEC";
类型 Form{整数 hwnd;整数 WndProc;}
返回(N1* N2);
如果(消息=窗口关闭){停止(0);}
a =如果是(消息=0)10,500;
否则{返回(1);}
判断(消息)为 窗口关闭{停止(0);}
循环(10){...}
循环{...i--;}i=0停止;循环{...i+2;}(i=100)
循环在(a<1000){a++;}
For(i=0;i<100;i++){i从0到99,每次加1,循环一百次}
循环数组(ab){}
开头: .... 跳到 开头;
起点@ .... 跳转>起点;
整数 数组();重置 数组(20); 保留 数组(200);
整数 数组(); 重置 数组(200);
销毁 数组;
置入[字节 $68]; 置入[整数 $20];//相当于写机器语言
指令[6820088800];//连续的十六进制机器码
传址[$4001200,a];//写入指定内存位置
字节组 tmp[15,$20,60,128];
输出文件=exe//改扩展名.
列举 form{.s=1;.l=5;}//==form.s=1;form.l=5;
导入 信息框 别名 MessageBoxA lib "USER32.DLL",4;
程序类型 34//32+2.就是32位的控制台.
程序资源 10,"sec.jpg"//资源类型与文件名.
程序图标"sec.ico";
置入功能
置入指令
类似于汇编
的DB/DW
等,是在代码段
插入指令数据
.
置入[字节 15,20,40];
置入[整数 66,$204068AA];
置入[整形 $2040,88];
置入[小数 3.14];
置入[文本 "你好"];
置入[文本 50];
置入[地址 窗体];
置入[局部 参数];
置入[调用 加法];
置入[函数 信息框];
置入[@ 加法];
跳转略
.
数据表
直接读取
数据到指定结构
.
读取
数据表是为批量读取
数据库而设计的功能,可以自定义数据结构
,然后无需使用ADO
等对象,直接把数据
读取到相应结构内存
中.
只要把需要
字段数据读取
出来,还可直接改变数据类型
.如数据库
中字段类型
为整数
,程序需要把整数类型
数据全部转换成小数类型
.
同样的数值15
,整数和单精度小数
都占四字节
,但是它们的数据
却大不相同.程序
定义为小数
,数据库
里是整数
,就可以全部提取为小数数据
.
读取
后的数据表
读写方法为:表名(行号).字段名
,如:
lv=玩家表(0).等级;玩家表(3).职业=5;
表名.rows
为行数,表名.cols
为列数.
长(表名)
获取类型结构
或每一行
的数据长度
,表名.len
是申请
的数组长度
,使用前需要重置 表名(数量)
.
申请
长度数量要>=
查询表的记录数
,读取
完数据之后,表名.rows
为实际读取记录数
.
数据表
的序号是从0
开始,100
行记录就是按序号0-99
获取.读取数据
是一段连续存放
内存,行列
是连续整齐
排列的.
文本,数组,指针操作
文本
是一段文字数据,数组
是按数据类型连续排列
数据,内存指针
是内存
中某个数据
的位置.
它们都是用一个整数地址
来表示所在位置
,操作
类似.
整数 s="sdkfskd";
s(0)=\b;整数 m;//内存地址
m(13)=128;//13处写入.
a=m(10);//读取
m(13)%=32128;a=m(2)%;//读取写入2字节,用%
m(13)&=$AF32C128;如果(m(2)&=889654){};
//读取写入4字节,用&
读写内存地址
可用变量
读写内存地址
变量
只能是字节,整形,整数,小数
等4字节
以内的数字类型
.
如 文本 a="$32A4B8C6428B";字节 b;正整形 i;
b b>a+2;//就把a的第三位置`0xB8`,换成了`50`
文本 内容[64]="0123456789ABCDEF中华人民共和国";
整数 数值=内容
//数值得到数据`缓冲区`内存地址
数值=内容(0)
//从数据缓冲区读取第一字节数值,0这个字
数值=内容%
//从数据缓冲区读取两字节数据到数值变量,01这两个字
数值=内容&
//从缓冲区读取四字节数据,0123这四个字,(0)可以不写
数值=内容(2)
//从缓冲区的2字节后读取一字节数据,2这个字
数值=内容(2)%
//从缓冲区的2字节后读取两字节数据,23这两个字
数值=内容(2)&
//从缓冲区的2字节后读取四字节数据,2345这四个字
内容% =数值
//向缓冲区写入两字节数值,01被修改
内容& =数值
//向缓冲区写入四字节数值,0123被修改
内容(2)% =数值
//向缓冲区的2字节后写入两字节数值,23被修改
内容(2)& =数值
//向缓冲区的2字节后写入四字节数值,2345被修改
数值=#4
//#4是指针之后偏移4字节,就是读取4567这四个字
数值=#(4)
//#(4)是指针之后偏移4字节,小括号就是读取4这一个字
数值=#[4]
//#[4]是指针之后偏移4字节,中括号就是读取45这两个字
数值=#@4
//#@4是指针之后偏移4字节,就是4这个字的位置(取文本)
数值=##4
//#4是指针之后偏移4字节,就是读取456789AB这8个字(取浮点数)
.#6=数值
//#6是指针之后偏移6字节的浮点数,就是6789ABCD这八个字
.(6)=数值
//6是指针之后偏移6字节,读写操作6这个字
.%6=数值
//6是指针之后偏移6字节,读写操作67这两个字
.&6=数值
//6是指针之后偏移6字节,读写操作6789这四个字
.!6=数值
//6是指针之后偏移6字节,读写操作6789这四个字的小数值
记住指针位置
,是变量缓冲区内
最后读写
操作的内存偏移位置
.
还有中括号和~符号
的指针操作,只记变量指针位置
,不包括操作
的偏移位置.
小括号
可以读写操作整数,文本,数组,结构体和数据表
等,中括号
只能读整数和文本指针
.
文本 内容[64]="0123456789ABCDEF中华人民共和国";
整数 数值=~内容
//数值得到数据缓冲区的前四字节数据,0123
数值=内容[0]
//从数据缓冲区读取第一字节数值,0这个字
数值=内容[2]
//从缓冲区的2字节后读取一字节数据,2这个字
数值=内容[2]%
//从缓冲区的2字节后读取两字节数据,23这两个字
数值=内容[2]&
//从缓冲区的2字节后读取四字节数据,2345这四个字
数值=`[4]
//`[4]是内容缓冲区向后4字节,就是读取4这个字
数值=`[4]%
//内容缓冲区向后4字节,百分号就是读取45这两个字
数值=`[4]&
//内容缓冲区向后4字节,连接号就是读取4567这四个字
数组和数据表包含子类名和方法
方法 | 意思 |
---|---|
数组.指针 | 数据 缓冲区指针 |
数组.长度 | 成员数量 或文本 缓冲区大小 |
子类.长度 | 空间 长度 |
数组.维数 | 第一维 数组的长度 |
对象.类 | 关联的类 |
对象.标识 | IID 标识 |
数据表.指针 | 数据 缓冲区的指针 |
数据表.长度 | 可存储行数 |
数据表.行数 | 已读取 数据的行数 |
数据表.列数 | 每行 数据的列数 |
读取表 | 读取 数据到数组 缓冲区 |
加数组 | 把某列 数据加到一维数组 |
数组
数组,数据表和结构体
都属于全局变量
,数组
可以是静态和动态
两种
静态数组
如:
整数 一(10);字节 二(5);
动态数组
括号内为空,如整形()
.
结构体
类型只支持是静态数组
,静态
数组不支持重置,保留和销毁
.
数据表
只支持动态数组
,申请的数据
是清零
的,支持重置,保留和销毁
.
子类
子类
要通过"新建"
申请内存
才能使用,数据
不清零,只支持销毁
.
子类和对象
支持全局和局部
变量,实体
是一个整数指针变量
.
子类
代码需要单独
一个模块文件
来写,格式为:子类 名称{...}
.
子类
支持的变量类型
:布尔/字符/字节/整形/正整形/整数/小数/浮点/大数/文本
.
子类变量
均可使用数组
,下标
长度必须是数字
,不支持动态数组
.
子类
变量时不能赋值
,未新建
子类时变量
的数据并不存在
.
子类
如果不包含变量
,是不需要新建
,不用
申请内存空间
子类
里面包括程序段
,可直接使用子类
内部的变量
子类
书写完之后,以大括号}
结尾,与命名子类
后的{
对应.
使用子类
时先要新建子类
,才可使用其变量和方法函数
.
子类名 名称1 = 新建 子类名;
整数 名称2=新建 子类名
也可用赋值
指向已存在的子类:
子类名 名称3=名称1;
子类
变量用法:
整数 数一=名称1.变量名;
名称1.变量名=88;
传递
参数时也可用子类
:
程序段 测试(子类名 名称3)
名称3.变量=99;
变量9=名称3.读取(数据,4);
名称3.写入(内容)
销毁
子类方法是:
销毁 名称2;
子类名
和子类实体
要区分清楚
COM对象
COM对象
申请方法是:
对象 名称5=对象名;
对象 任务=任务栏类;
//用对象结构
//或下面代码形式
对象 任务($44F3FD566DFDD011958A006097C9A090,$42F3FD566DFDD011958A006097C9A090,接口,计数,释放,初始化,添加,删除,激活,活动)
极语言库
里已有的COM对象
结构在说明书
里有使用方法
.
如:任务栏类,链接类,存储类
,可查看
具体说明
申请完
对象变量,要用创建对象
去创建
对象实体
语法是:
创建对象 任务;任务.初始化;任务.添加(窗口)
任务.删除(窗口);任务.激活(窗口),任务.活动(窗口)
对象
不使用新建和销毁
,释放
对象写法是:
任务.释放;
全局变量和局部变量
在小程序
段内申请的变量
,包括提交的参数
都是局部变量
.
在子类或者数据表头
内申请的变量
属于子类变量
.
在其它地方
(小程序和子类
外)申请的变量是全局变量
.
全局变量
包括字符,字节,整形,正整形,整数,正整数,小数,浮点,大数和自定义类型
.
局部变量
目前只有整数,小数和文本
这三种.
在按参数
传递任何变量
时,均为4字节数字
.
所以大于4字节
的类型比如文本,浮点和自定义类型
,提交的都是变量的地址
,而不是值
.否则是按值传递
的.
因此
小程序的参数通常只有整数和小数
这两种,文本
提交过来也是个整数地址
.
小数
是提交参数时,要直接进行小数运算
时,才需要特别指定
.除此外,任何提交参数
都可写成整数类型
.
子类
本身并没有特别定义,它可以是全局
整数变量,也可是局部整数
,也可以是整数数组
.
全局变量
是编译
程序时,提前
在数据区段
申请的.局部变量
仅在小程序段内
有效,属于临时存储空间
.
子类和数据表的变量
,是在运行程序
后,动态
申请的内存区块
.使用子类
前,要用新建 子类名称
数据表
相当于自定义二维数组
,使用前要先"重置"
数组长度,该长度不能小于
所读取数据的行数.
数据表
可使用数组的重置,保留和销毁方法
,而子类
只可用新建和销毁
这两个方法.
子类和数据表的区别
子类
申请的内存区域
并不是清零
的,所以新建
的时候,可以用:
玩家=新建 角色类(等级=1,职业=2,性别=1);
来设置子类
变量的数值,未清零
的内存数据
是随机
的,即在新建子类时子类变量
的数值
是不确定的.
而在重置长度后,数据表
的内存区域
是清零
的,所有此时变量
值都是0
,数据表
也可以用作自定义数组
.
成员变量
使用方法是:玩家表(0).性别
,括号内
是行号
也就是数组
的标号,是从0
开始计数的.
子类变量
的使用方法是:玩家.性别
.如果申请
的子类
变量是数组形式,如:角色类 玩家()
也可以像数组
一样,先
重置 玩家(1000),玩家(0)=新建 角色类;
玩家(0).性别=1;
但是销毁
只能是先销毁
一个成员,
销毁 玩家(0)
N=玩家(0);销毁 N;
在子类内部
,可不加前缀
直接访问子类变量
,如:
等级=100;职业=3;xb=性别
等等.
全局变量
,子类变量
的名称是绝对
不能重复的,重名
就会优先
判定为全局变量
.
申请和使用局部变量
局部变量
除文本
外都是4字节
,文本
可以大于4字节
,但必须是4的整数倍
.
局部变量
最多可申请1-2M
空间,不使用局部变量
则不申请,少量使用
时(限120字节
)
局部
整数和小数变量30个
以内,文本
按申请的长度
算.需要更多
变量时,变量
前加局部或local
.
并且
放在小程序
开头第一行
,编译时,才好预计
此小程序段需要申请
多大栈空间
.如:
局部 文本 ss(32);
局部
与全局
变量区别
是很大的,编程语法
上尽量做到兼容
使用,方便程序
灵活处理.
局部
和全局
文本都可像操作数组
一样,读写
其中每一字节
.如:
文本 s(16)="abc";s(2)=\d;
也可像其它变量
一样,写入数字.如:
s=0;//清空文本
s=$31323334;
//`文本开头`等于4321
因为十六进制
是反转
的,最后的34
写入字符
的第一字节
,对应
文字是4
,用s(1)
读取出来就是52
.
更多细节,见说明书
!
相关文章:
2311极语言高亮说明书
入门 安装目录下Sec.exe为ide.Sc为编译器. .sec为单文件二进制源码结构,.SEC和.极为多文件文本结构,命令行:cmd Sc.exe 源码路径. 基础 整数变量也可以是万能指针,传送参数,参数只有整数和小数两种. 可在名称前面加或&符号取变量或函数名指针地址,文本变量只取地址不用加…...

金蝶云星空与金蝶云星空对接集成盘亏单查询打通盘亏单新增
金蝶云星空与金蝶云星空对接集成盘亏单查询打通盘亏单新增 接通系统:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”&am…...
深入理解 Django 信号机制
Django 信号(signals)是一种实现解耦的有力工具,它允许某些发生的事件通知其他部分的代码。信号主要用于在 Django 应用中的不同部分之间传递信息,尤其是在模型操作发生时。本文将深入探讨 Django 信号的工作原理、如何定义和接收…...

uniapp开发app应用从创建到上架
目录 前言 一、项目初始化 1.初始化方式 2.账号注册 3.插件安装 二、项目结构及重点文件介绍 1.项目基本结构 2.项目文件介绍 三、应用打包 1. 安卓打包 2.苹果打包 四、应用发布 1. 安卓市场发布 用户权限和隐私政策 注销 软著和App备案证书 2. 苹果市场发布 …...
为什么使用Golang而非Rust开发桌面应用?
MoonGuard 团队选择 Golang 而不是 Rust 作为他们的 Krater 桌面应用程序,因为 Golang 中更容易进行内存管理、类型安全和 ORM 支持。 使用 Rust 和 Tauri 时面临的一些挑战包括: 难以理解 Rust 的所有权和借用规则、其严格的类型安全有时会限制开发速…...
问题复盘|MySQL 数据记录中明明有值,使用 concat() 后得到的却一直是 null
背景 MySQL 的数据数据记录中明明有值,在使用 concat() 查询时却一直得到 null SELECT CONCAT(first_name, , last_name) FROM users;排查后发现 MySQL 的 concat 函数拼接规则是 当多个拼接的字段的字段值中存在 null 时,返回的一定是 null 解决方…...

正点原子嵌入式linux驱动开发——Linux IIO驱动
工业场合里面也有大量的模拟量和数字量之间的转换,也就是常说的ADC和DAC。而且随着手机、物联网、工业物联网和可穿戴设备的爆发,传感器的需求只持续增强。比如手机或者手环里面的加速度计、光传感器、陀螺仪、气压计、磁力计等,这些传感器本…...

利用角色roles上线wordpress项目
角色订制:roles ① 简介 对于以上所有的方式有个弊端就是无法实现复用假设在同时部署Web、db、ha 时或不同服务器组合不同的应用就需要写多个yml文件。很难实现灵活的调用。 roles 用于层次性、结构化地组织playbook。roles 能够根据层次型结构自动装载变量文…...

4.0 Linux进程前导知识
个人主页:Lei宝啊 愿所有美好如期而遇 冯.诺依曼体系 CPU:运算器,控制器 输入设备:键盘,麦克风,摄像头,鼠标,网卡,磁盘等。 输出设备:显示器࿰…...

推荐一份适合所有人做的副业,尤其是程序员。
我建议每个人都去尝试一下网上接单,这是一个门槛低、类型多样的方式,尤其适合程序员! 在接单平台上,你可以看到各种类型的兼职。以freelancer为例,你可以在这里找到技术、设计、写作等类型的兼职,只要发挥…...

Linux中字符设备的打开、写入
一个内核模块应该由以下几部分组成。 第一部分,头文件部分。一般的内核模块,都需要 include 下面两个头文件: #include <linux/module.h> #include <linux/init.h> 第二部分,定义一些函数,用于处理内核…...

3d max软件中的缓存垃圾该如何清理?
使用3d max建模到渲染操作,来回对效果图调整的次数过多时,就会出现一下看不到的垃圾缓存,影响保存的速度,影响效率! 对于这类的3d垃圾清理的有什么高效方法呢? 3dmax垃圾清理的常规操作如下: 1、…...

11.13 牛客刷题8/10
11.13 信号完整性 指针地址 的加减,注意 最后转为16进制...
CI/CD简介
CI/CD简介 1、CI/CD流水线2、什么是CI/CD3、CI/CD的优点4、CI/CD的工作原理5、CI/CD流水线工具6、CI/CD的应用7、CI/CD的未来趋势 1、CI/CD流水线 从最初的瀑布模型,到后来的敏捷开发,再到今天的DevOps,这是现代开发人员构建出色产品的技术路…...
python opencv 读取文件夹下所有MP4文件并解析成jpg图像
你可以使用Python的OpenCV库来读取文件夹中的所有MP4文件,并将其解析为JPG图像。以下是一个示例代码,演示了如何实现这个功能,并设置解析间隔为3帧: import os import cv2def extract_frames(input_folder, output_folder, inter…...

MySQL binlog 日志解析后的exec_time导致表示什么时间?
1. exec_time 到底表示什么时间? MySQL binlog日志解析后,我们能看到会有 exec_time ,从字面意思理解这个记录的是执行时间,那这个记录的到底是单条sql的执行时间?还是事务的执行时间?下面通过测试来解读一…...

【Linux】:git基本操作_添加文件_两种场景_查看.git文件 || git修改文件 || 版本回退
🎯添加⽂件–场景⼀ 🎯在包含.git的⽬录下新建⼀个ReadMe⽂件,我们可以使⽤ git add 命令可以将⽂件添加到暂存区: • 添加⼀个或多个⽂件到暂存区: git add [file1] [file2] … • 添加指定⽬录到暂存区,…...

Django 基于ORM的CURD、外键关联,请求的生命周期
文章目录 基于ORM进行的CURDORM外键关联Django请求的生命周期流程图 基于ORM进行的CURD 本质上就是通过面向对象的方式,对数据库的数据进行增、删、改、查。 这里将会将我们之前所有内容结合到一起,首先确保基于上序操作已经建立好了UserInfo表ÿ…...
集合贴4——QA机器人设计与优化
基础课21——知识库管理-CSDN博客文章浏览阅读342次,点赞6次,收藏2次。知识库中有什么信息内容,决定了智能客服机器人在回答时可以调用哪些信息内容,甚至可以更简单地理解为这是智能客服机器人的话术库。https://blog.csdn.net/22…...

【Verilog语法】
Verilog语法 1. Verilog语法1.1 拼接运算符1.2 运算符优先级1.3 注释1.4 关键字1.5 模块结构1.6 结构语句1.7 赋值语句1.8 条件语句1.9 状态机1.10 OSI七层模型 1. Verilog语法 1.1 拼接运算符 1.2 运算符优先级 1.3 注释 1.4 关键字 1.5 模块结构 1.6 结构语句 1.7 赋值语句 …...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...