无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: mdyblog
打印 上一主题 下一主题

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
7561#
 楼主| 发表于 2024-5-29 15:02:14 | 显示全部楼层
泮安宁 发表于 2024-5-29 14:18
TABL -sl:%&SL% -sc:%&SC%
-sl -sc什么意思没找到说明啊,按指定的字符换行换列吗按这个说明,TAB键和换行 ...

sl 指定分行符
sc指定分列符

点评

这有两个 -sc [attachimg]542344[/attachimg]  详情 回复 发表于 2024-5-29 19:23
回复

使用道具 举报

7562#
 楼主| 发表于 2024-5-29 22:27:47 | 显示全部楼层
liangnijian 发表于 2024-5-29 19:27
LABE 也有一个问题:在执行命令那加上 * 号后,鼠标接触到 LABE 光标是不变了,但是活动颜色不会变

改了

点评

点击BROW跳转失败: [attachimg]542377[/attachimg]  详情 回复 发表于 2024-5-30 08:21
回复

使用道具 举报

7563#
 楼主| 发表于 2024-5-30 11:25:16 | 显示全部楼层
Anson4 发表于 2024-5-30 00:35
1、如何用ENVI指令读取进度条的进度,保存到变量%&A%中?
2、在“进度条加文本5.WCS”中,仅设置进度条的 ...

    PBAR -smooth PBAR1,L22T13W200H16,40
    ENVI @PBAR1.bkcolor=0xFF
回复

使用道具 举报

7564#
 楼主| 发表于 2024-5-30 11:34:09 | 显示全部楼层
Anson4 发表于 2024-5-30 00:35
1、如何用ENVI指令读取进度条的进度,保存到变量%&A%中?
2、在“进度条加文本5.WCS”中,仅设置进度条的 ...

进度 %PBAR1%
MESS-top- %PBAR1%

点评

谢谢!  详情 回复 发表于 2024-5-30 13:26
回复

使用道具 举报

7565#
 楼主| 发表于 2024-5-30 12:09:27 | 显示全部楼层
本帖最后由 mdyblog 于 2024-5-30 12:46 编辑
泮安宁 发表于 2024-5-30 01:01
TABL和窗口一样大时水平滚动条不显示,要比窗口矮很多才能显示水平滚动条,垂直滚动条就没有这个问题

表 ...

随便给点数据就显示水平进度条。 再删掉该行
@TEAM WIN1 | EXIT
_SUB WIN1,W1080H500,,,,,,-scale:%&LOGPIXELSX% -size
    TABL  -sl:%&SL% -sc:%&SC%   TABL1,L0T0W990H300,200:1%&SC%200:2%&SC%600:3%&SC%,0,0x400
    ENVI @TABL1.val=-1
_END


点评

CHEK -scale:(50*96/12):"%DESKTOP%\445.png" CHEK1,L75T187W120H50,,, RADI -scale:(50*96/12):"%DESKTOP%\445.png" CHEK1,L75T187W120H50,,, CHEK和RADI用PNG图片的时候有白底,在黑色背景下很突兀  详情 回复 发表于 2024-7-31 10:22
不行啊,当TABL与窗口一样大时,并且TABL列宽总和大于TABL的宽,有数据水平滚动条也不显示 [attachimg]542413[/attachimg] 测试当SUB的高为500时,TABL的高为470才能看到水平滚动条 [attachimg]542414[/a  详情 回复 发表于 2024-5-30 17:06
回复

使用道具 举报

7566#
 楼主| 发表于 2024-5-30 13:00:35 | 显示全部楼层
PECMD2012.1.88.05.94Stable-240512GC测试.7z
回复

使用道具 举报

7567#
 楼主| 发表于 2024-5-30 20:17:14 | 显示全部楼层
本帖最后由 mdyblog 于 2024-5-30 20:38 编辑
527104427 发表于 2024-5-30 19:47
1.窗口的标题栏你没算上吧?窗口标题栏高度+tabl 高度=窗口高度
2.给tabl 设置一个渐变度,就能将标头区 ...

跑到口外面去了。 窗口太小。
你的窗口大小,包括 边框。 刨掉边框, 窗口 不够显示的。
加个 -csize  , 所给 大小不包含 边框。 边框另算。 控件只能在客户区(-csize),边框不算。
效果:

点评

明白了  详情 回复 发表于 2024-5-30 20:40
哦,原来加上-csize就一劳永逸了  详情 回复 发表于 2024-5-30 20:23
回复

使用道具 举报

7568#
 楼主| 发表于 2024-5-30 20:39:11 | 显示全部楼层
527104427 发表于 2024-5-30 20:23
哦,原来加上-csize就一劳永逸了

对的。 方便。

点评

-csize参数,在显示比例大于等于150%时,关闭按钮下边距开始变大(测试环境是 Windows 11) 250% [attachimg]542466[/attachimg] 225% [attachimg]542465[/attachimg] 200% [attachimg]542464[/attachimg]  详情 回复 发表于 2024-5-31 11:23
回复

使用道具 举报

7569#
 楼主| 发表于 2024-5-30 23:28:30 | 显示全部楼层
最新GD版。 数据部分放一个显式字面的 空格, 会加一行再删掉该行。 这样水平滚动条 会自动显示出来。
回复

使用道具 举报

7570#
 楼主| 发表于 2024-5-31 20:10:17 | 显示全部楼层
hhh333 发表于 2024-5-31 15:26
想实现数组下标相似的功能,请教大家一个问题,上述代码怎么在EnviMode=1的时候也有效,要怎么写,就是等号 ...

还有一种
ENVI~    B=A%N%
右边 当做 变量名
回复

使用道具 举报

7571#
 楼主| 发表于 2024-6-1 11:02:06 | 显示全部楼层
本帖最后由 mdyblog 于 2024-6-1 11:57 编辑
hhh333 发表于 2024-6-1 05:49
怎么用sed去除字符串从右边开始的第一个回车换行符?看说明似乎有,但不知如何用

MS(DOS/WIN) 的回车换行符是 2个 字符 0x0d  0x0a
SET$ &NL=0d 0a
SET &v1=111%&NL%222%&NL%333
SED  ;&&n=?0,%&NL%,,%&v1% //总次数
CALC  #&&n_1=%&n% - 1  //右边
SED &v2=1:%&n_1%,%&NL%,,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]   //右边

-----------------------------
  v1[
111
222
333]
  v2[
111
222333]




回复

使用道具 举报

7572#
 楼主| 发表于 2024-6-1 12:13:07 | 显示全部楼层
hhh333 发表于 2024-6-1 05:49
怎么用sed去除字符串从右边开始的第一个回车换行符?看说明似乎有,但不知如何用

还可以 RPOS*

ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=111%&NL%222%&NL%333
RPOS*  &&i=%&NL%,1,%&v1%
IFEX #%i%<=0,  //没有
{*  SET~ &v2=&v1
}!
{*
CALC &i1=%&i%-1
CALC &i2=%&i%+1
^SET v2=%%&V1:~0,%&i1%%%%%&V1:~%&i2%%%
}

MESS [%&v2%]

--------------
[111
222333]

回复

使用道具 举报

7573#
 楼主| 发表于 2024-6-1 16:08:03 | 显示全部楼层
liangnijian 发表于 2024-6-1 12:44
这个SED有点疑惑,还是说我的写法有问题。(名/行名前~则从右计算位置)
SED B;/=1,.*4,,%A% 加上 .* 这 ...

这个说的是查询
ENVI A=12345
SED  ~I=?,2,,%A%   //I=4
回复

使用道具 举报

7574#
 楼主| 发表于 2024-6-1 16:18:01 | 显示全部楼层
泮安宁 发表于 2024-6-1 14:43
m大要不要搞个结构体自动对齐

具体什么意思, 来个例子
回复

使用道具 举报

7575#
 楼主| 发表于 2024-6-2 00:16:49 | 显示全部楼层
hhh333 发表于 2024-6-1 18:48
这个也还算简洁,但要两次SED
第一次得到字符出现次数,第二次利用跳过总次数减1,刚好是倒数第一个

GF版 , SED可反向替换ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=111%&NL%222%&NL%333
SED &v2=-1,%&NL%,,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]

----------------------------------------
  v1[
111
222
333]
  v2[
111
222333]

回复

使用道具 举报

7576#
 楼主| 发表于 2024-6-2 18:24:33 | 显示全部楼层
本帖最后由 mdyblog 于 2024-6-3 10:12 编辑
hhh333 发表于 2024-6-2 14:17
还有点不对,如果加负号是反序次数,那-2应该从右往左代替两次,而这个只是倒数第二个替代了
执行结果如下 ...

PECMD2012.1.88.05.94Stable-240512GG测试.7z=[次数][:位次][标志],正则,替换,原串 替
位次<0:反向 1:-n可简写-n  

ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
SED &v2=2:-2,%&NL%,,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]

--------------------
  v1[
1A11
2A22
3A33
4A44
55A5]
  v2[
1A11
2A223A334A44
55A5]

从右往左代替两次:
SET$ &NL=0d 0a
SET &v1=111%&NL%222%&NL%333%&NL%444
SED &v2=2:-2,%&NL%,,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]
--------------------
  v1[
111
222
333
444]
  v2[
111222333
444]



///////////反向单元 查询
ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2AA22%&NL%3AAA33%&NL%4AAAA44%&NL%55AAAAAA5
SED -ni *&nm;&nmt;&nml=?2:-2,A+,&A1;&A2,%&v1%
MESS. [%&nm%] [%&nmt%] [%&nml%] A1[%&A1%] A2[%&A2%]
--------------------------------
[15 23] [2] [3 4] A1[AAA] A2[AAAA]
回复

使用道具 举报

7577#
 楼主| 发表于 2024-6-3 09:18:38 | 显示全部楼层
本帖最后由 mdyblog 于 2024-6-3 13:02 编辑
hhh333 发表于 2024-6-3 08:10
这么定义更加不好理解,我觉得还是把1:1,2:2,3:1看成一个整体比较好,譬如
1111
2222

也么也没多想。 参照  MSTR 改的 。 含义
次数:-起次   // -1 -2 -3   ....
次数:起次   // 0 1 2 3   ....


则么改都可以, 编程差别不大。
大家觉得怎么合适,改都来得及。




重新上传了。 改了说明, 和MSTR基本保持一致

SED  变量名[;次名]=[次数][:起次][标志],正则,替换,原串
SED -ni 名[;次名][;行名]=?[次][:起次][标志],找正则串,[子名1;子名2],原串
    起次<0:反向  


MSTR 变量名=位置,长度,字符串    //位置<0 则 反向
MSTR[*$] [-xq] [-left] 变量名1,变量名2...,变量名n=<[~]串号1[-]> //串号<0 则 反向


都是  位置<0   反向

回复

使用道具 举报

7578#
 楼主| 发表于 2024-6-3 10:30:46 | 显示全部楼层
liangnijian 发表于 2024-6-3 09:10
这个输出结果是不是有问题,第一个输出少了 55A5 ,第二个输出少了444

最后一哆嗦, 优化 出了 差错。 重新上传了。


ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
SED &v2=2:-2,%&NL%,,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]

-----------------------
  v1[
1A11
2A22
3A33
4A44
55A5]
  v2[
1A11
2A223A334A44
55A5]

回复

使用道具 举报

7579#
 楼主| 发表于 2024-6-3 15:56:05 | 显示全部楼层
泮安宁 发表于 2024-6-3 15:23
adsl的-start参数什么意思
adsl的说明是不是不太全

启动  该连接
回复

使用道具 举报

7580#
 楼主| 发表于 2024-6-3 19:27:07 | 显示全部楼层
泮安宁 发表于 2024-6-3 16:21
测试win8.1需要-start,win11不需要就能连接,不知什么区别

--------------------------------------- ...

正则,替换,原串
对应 这3各部分是否白痴书写的样子,%V%就保持这个样子, 不解释变量; 就给个*  _为占位,  为表操作后面的。

ENVI^ EnviMode=1 ForceLocal=1
ENVI bai=%
ENVI V=abc
SET$ &NL=0d 0a
SET &v1=123%bai%V%bai%456abc  //123%V%456abc
SED &v2=0*,%V%,,%&v1%  // 替换 "%V%"
SED &v3=0,%V%,,%&v1%   // 替换 "abc"
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]%&NL%   v3[%&NL%%&v3%]
EXIT
-------------------------------------------------------------------
  v1[
123%V%456abc]
  v2[
123456abc]
   v3[
123%V%456]

回复

使用道具 举报

7581#
 楼主| 发表于 2024-6-4 17:54:57 | 显示全部楼层
Anson4 发表于 2024-6-4 16:38
用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行 ...

ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后顺序
\%&NL%顺序在高DPI显示顺序环境窗口高度超出顺序预期。
//LPOS*  ,*&LPOS_AllLineNum=顺序,1,%&MSG%
SED* ;;*&SED_AllLineNum=?0,%&NL%顺序,,%&NL%%&MSG%
MESS. %&SED_AllLineNum%
EXIT
////////////////
1  3

回复

使用道具 举报

7582#
 楼主| 发表于 2024-6-4 17:57:48 | 显示全部楼层
Anson4 发表于 2024-6-4 16:38
用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行 ...

//2、要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后   //顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
SED* ;;*&SED_AllLineNum=?0,顺序[^%&NL%]*顺序,,%&MSG%
MESS [%&SED_AllLineNum%]
EXIT
------------------------
[1 3]

回复

使用道具 举报

7583#
 楼主| 发表于 2024-6-4 22:21:44 | 显示全部楼层
Anson4 发表于 2024-6-4 18:19
运行结果符合要求,谢谢!只是前面我的描述似乎有误,正确要求应该是这样:字符串“顺序”在同一行中出现 ...

//2X、要求:字符串“顺序”在同一行中出现1次或多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI$ &NLa=0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用缩放比例缩放后   //顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
SED* ;;*&SED_AllLineNum=?0,%&NL%[^%&NLa%]*顺序[^%&NLa%]*[%&NL%],,%&NL%%&MSG%%&NL%
MESS [%&SED_AllLineNum%]

------------------------
[1 3]
回复

使用道具 举报

7584#
 楼主| 发表于 2024-6-4 23:03:41 | 显示全部楼层
826773297 发表于 2024-6-4 21:17
pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图 ...

试试
回复

使用道具 举报

7585#
 楼主| 发表于 2024-6-5 08:51:00 | 显示全部楼层
本帖最后由 mdyblog 于 2024-6-5 11:34 编辑
hhh333 发表于 2024-6-5 06:50
看下面:
得到结果如下:
1、有错误,倒序没用”-"号替换

以前的逻辑不能改, 否则 出乱子。
倒序 如果 :-n,如果还是理解为 (从右 )跳过n次。
从最右边开始替换,
那么 会出现容易出错的  -0

程序处理-0没问题。 就怕 写代码  容易把 -0 写成 0.,变成从最左开始。


现在:
从左:0 1 2 3 4 5  //跳过次数n
从右:  -1 -2   -3    -4   -5    -6  //[-]起次n

现在从 整数  的角度理解:0 ~ n 从做开始的 。 0 表示从最左最开始替换
-1 ~- n 从做开始的 。 -1表示从最右最开始替换


如果严格按字面  1基  [-]起次  理解
从左:1 2 3 4 5  6  //起次 1~n  ====不兼容以前代码, 不考虑
从右: -1    -2   -3   -4  -5  -6  //-起次 -0 ~-n

如果严格按字面  0基  [-]起次  理解
从左:  0  1 2 3 4 5  //起次 0~n
从右: -0  -1    -2   -3   -4   -5   //-起次 -0~ -n    出现-0 ,容易犯错。

如果严格按字面  [-]跳过次数  理解
从左:0 1 2 3 4 5  //跳过次数0~n
从右: -0  -1   -2    -3    -4   -5   //-跳过次数 -0~-n    出现-0 ,容易犯错。




~~~~~~~~~~~~~
要不, 使用 -0 表示从 最右一次 开始替换。 0基起次。   这样逻辑纯粹一些。



回复

使用道具 举报

7586#
 楼主| 发表于 2024-6-5 21:52:25 | 显示全部楼层
hhh333 发表于 2024-6-5 15:31
为了与前面兼容,以前是X:Y,X代表替换次数,默认为1,Y代表跳过次数,默认为0
在前面加负号,或加一个 ...

很清楚。
就是和 MSTR /LSTR /RPOS 等换了风格。 在次数(长度)上 表示方向
回复

使用道具 举报

7587#
 楼主| 发表于 2024-6-5 21:56:36 | 显示全部楼层
本帖最后由 mdyblog 于 2024-6-5 22:02 编辑
hhh333 发表于 2024-6-5 15:53
哈哈,还是不对
原来的2:-2,2:-1结果一样。

算了, 不纠结了。 - 加前面,加后面,都可以。不就是参数提取嘛。
m:n

abs(n) 是0 基 起次, 也是 跳过次数。有 0 和 -0
abs(m)是替换次数。-0 和 +0 都表示全部替换。  
回复

使用道具 举报

7588#
 楼主| 发表于 2024-6-5 23:36:54 | 显示全部楼层
hhh333 发表于 2024-6-5 15:53
哈哈,还是不对
原来的2:-2,2:-1结果一样。

新版上传了
- 加前面,加后面,都可以。不就是参数提取嘛。
m:n

abs(n) 是0 基 起次, 也是 跳过次数。有 0 和 -0,方向不同。
abs(m)是替换次数。-0 和 +0 都表示全部替换。  


ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
SED &v2=-2:2,%&NL%,-,%&v1%
SED &v3=2:-2,%&NL%,-,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL% v2[%&NL%%&v2%]%&NL% v3[%&NL%%&v3%]
----------------------------
  v1[
1A11
2A22
3A33
4A44
55A5]
v2[
1A112A223A33
4A44
55A5]
v3[
1A112A223A33
4A44
55A5]

回复

使用道具 举报

7589#
 楼主| 发表于 2024-6-6 04:29:24 | 显示全部楼层
826773297 发表于 2024-6-4 21:17
pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图 ...

新版 FONT支持 私有字体
FONT  -p[:返回名]  <资源|文件>  //加载 私有字体
FONT -  -p  上次返回值  //主动删除 私有字体 , 一般不需要, 程序结束就自带删除了
资源 和 字体文件   可以 CMPS -m 压缩


1:
FONT   -p:&&f  #1|FONT   //资源
MESS. font:%&f%


FONT   -p   #1|FONT   //资源



2:
FONT   -p:&&f  segmdl2.ttf.cmz   //CPMS -m 压缩的字体文件
MESS. font:%&f%

FONT   -p   segmdl2.ttf.cmz   //CPMS -m 压缩的字体文件





3:
FONT  -p    -      %&f%  //主动提前删除


效果:


回复

使用道具 举报

7590#
 楼主| 发表于 2024-6-6 12:25:12 | 显示全部楼层
hhh333 发表于 2024-6-6 09:28
还有个BUG,SED &v3=2:-2,%&NL%,-,%&v1%怎么变成了SED &v3=2:-2,%&NL%,,%&v1%没被“-"代替

忙忘了, 还有替换串。
改了
ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
SED &v2=2:2,%&NL%,-,%&v1%
SED &v3=2:-0,%&NL%,-,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%%&NL% v2[%&NL%%&v2%]%&NL%%&NL% v3[%&NL%%&v3%]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  v1[
1A11
2A22
3A33
4A44
55A5]

v2[
1A11
2A22
3A33-4A44-55A5]

v3[
1A11
2A22
3A33-4A44-55A5]


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-28 21:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表