无忧启动论坛

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

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

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

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

点评

这有两个 -sc [attachimg]542344[/attachimg]  详情 回复 发表于 5 天前
回复

使用道具 举报

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

改了

点评

点击BROW跳转失败: [attachimg]542377[/attachimg]  详情 回复 发表于 4 天前
回复

使用道具 举报

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

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

使用道具 举报

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

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

点评

谢谢!  详情 回复 发表于 4 天前
回复

使用道具 举报

7565#
 楼主| 发表于 4 天前 | 显示全部楼层
本帖最后由 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


点评

不行啊,当TABL与窗口一样大时,并且TABL列宽总和大于TABL的宽,有数据水平滚动条也不显示 [attachimg]542413[/attachimg] 测试当SUB的高为500时,TABL的高为470才能看到水平滚动条 [attachimg]542414[/a  详情 回复 发表于 4 天前
回复

使用道具 举报

7566#
 楼主| 发表于 4 天前 | 显示全部楼层
PECMD2012.1.88.05.94Stable-240512GC测试.7z
回复

使用道具 举报

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

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

点评

明白了  详情 回复 发表于 4 天前
哦,原来加上-csize就一劳永逸了  详情 回复 发表于 4 天前
回复

使用道具 举报

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

对的。 方便。

点评

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

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

7571#
 楼主| 发表于 前天 11:02 | 显示全部楼层
本帖最后由 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]




点评

这个也还算简洁,但要两次SED 第一次得到字符出现次数,第二次利用跳过总次数减1,刚好是倒数第一个  详情 回复 发表于 前天 18:48
这个SED有点疑惑,还是说我的写法有问题。(名/行名前~则从右计算位置)SED B;/=1,.*4,,%A% 加上 .* 这样可以替换掉最后一个4前面的内容[/backcolor] SED C;/=1,4,,%A%[/backcolor] 少了 .* 就只能替换左边开始的第  详情 回复 发表于 前天 12:44
回复

使用道具 举报

7572#
 楼主| 发表于 前天 12:13 | 显示全部楼层
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]

点评

我以为sed可以从右边开始替换。 如果没有看来用rpos好理解一些  详情 回复 发表于 前天 18:27
回复

使用道具 举报

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

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

点评

那就可以加个功能了,SED默认左侧开始,加个参数从右侧开始  详情 回复 发表于 前天 16:28
回复

使用道具 举报

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

具体什么意思, 来个例子

点评

64位系统,_CRYPTOAPI_BLOB总大小16个字节, cbData4个字节,pbData要偏移8字节而不是偏移4字节紧跟在 cbData后面,好像是结构体总大小和结构体成员的起始位置都是8的倍数  详情 回复 发表于 前天 16:34
回复

使用道具 举报

7575#
 楼主| 发表于 昨天 00:16 | 显示全部楼层
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]

点评

这么快,不错,我试一下  详情 回复 发表于 昨天 11:23
回复

使用道具 举报

7576#
 楼主| 发表于 昨天 18:24 | 显示全部楼层
本帖最后由 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]

点评

这个输出结果是不是有问题,第一个输出少了 55A5 ,第二个输出少了444  详情 回复 发表于 14 小时前
这么定义更加不好理解,我觉得还是把1:1,2:2,3:1看成一个整体比较好,譬如 1111 2222 3333 4444 5555 目前SED 2:2 表示从左到右查找回车换行并跳过两次会得到 1111(跳过) 2222(跳过) 333344445555  详情 回复 发表于 15 小时前
回复

使用道具 举报

7577#
 楼主| 发表于 14 小时前 | 显示全部楼层
本帖最后由 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#
 楼主| 发表于 13 小时前 | 显示全部楼层
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#
 楼主| 发表于 8 小时前 | 显示全部楼层
泮安宁 发表于 2024-6-3 15:23
adsl的-start参数什么意思
adsl的说明是不是不太全

启动  该连接

点评

测试win8.1需要-start,win11不需要就能连接,不知什么区别 ---------------------------------------------------------------------------------- SED -ni 名[;次名][;行名]=?[次][:起次][标志],找正则串,[  详情 回复 发表于 7 小时前
回复

使用道具 举报

7580#
 楼主| 发表于 4 小时前 | 显示全部楼层
泮安宁 发表于 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]

点评

懂了  详情 回复 发表于 3 小时前
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-3 23:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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