安装目录下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对象
申请方法是:
对象 名称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
.
更多细节,见说明书
!