无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: mdyblog
打印 上一主题 下一主题

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

    [复制链接]
19201#
 楼主| 发表于 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
回复

使用道具 举报

19202#
发表于 2024-5-30 20:23:00 | 只看该作者
mdyblog 发表于 2024-5-30 20:17
跑到川口外面去了。 窗口太小。
你的窗口大小,包括 边框。 刨掉边框, 窗口 不够显示的。
加个 -cisze ...

哦,原来加上-csize就一劳永逸了

点评

对的。 方便。  详情 回复 发表于 2024-5-30 20:39
回复

使用道具 举报

19203#
 楼主| 发表于 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
回复

使用道具 举报

19204#
发表于 2024-5-30 20:39:33 | 只看该作者
527104427 发表于 2024-5-30 19:47
1.窗口的标题栏你没算上吧?窗口标题栏高度+tabl 高度=窗口高度
2.给tabl 设置一个渐变度,就能将标头区 ...

确实没算标题栏
回复

使用道具 举报

19205#
发表于 2024-5-30 20:40:07 | 只看该作者
mdyblog 发表于 2024-5-30 20:17
跑到窗口外面去了。 窗口太小。
你的窗口大小,包括 边框。 刨掉边框, 窗口 不够显示的。
...

明白了
回复

使用道具 举报

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

使用道具 举报

19207#
发表于 2024-5-30 23:55:51 | 只看该作者
This is great stuff.
回复

使用道具 举报

19208#
发表于 2024-5-31 09:25:28 | 只看该作者
楼主威武
回复

使用道具 举报

19209#
发表于 2024-5-31 11:23:52 | 只看该作者
本帖最后由 Anson4 于 2024-5-31 11:25 编辑

-csize参数,在显示比例大于等于150%时,关闭按钮下边距开始变大(测试环境是 Windows 11)。
_TEST_SCALE_CSIZE.zip (1.71 KB, 下载次数: 6)
250%

225%

200%

175%

150%

125%

100%

回复

使用道具 举报

19210#
发表于 2024-5-31 15:26:38 | 只看该作者
  1. `ENVI -mode EnviMode=1
  2. ENVI A1=123456
  3. ENVI N=1
  4. ENVI B=%A%N%%
  5. MESS %B%
复制代码
想实现数组下标相似的功能,请教大家一个问题,上述代码怎么在EnviMode=1的时候也有效,要怎么写,就是等号后面的变量要解释两次就对了,是不是要用“~”符号

点评

还有一种 SET~ B=A%N% 右边 当做变了名  详情 回复 发表于 2024-5-31 20:10
回复

使用道具 举报

19211#
发表于 2024-5-31 15:51:03 | 只看该作者
本帖最后由 红毛樱木 于 2024-5-31 15:52 编辑
hhh333 发表于 2024-5-31 15:26
想实现数组下标相似的功能,请教大家一个问题,上述代码怎么在EnviMode=1的时候也有效,要怎么写,就是等号 ...
  1. ENVI^ EnviMode=1
  2. ENVI A1=123456
  3. ENVI N=1
  4. ^ENVI B=%%A%N%%%
  5. MESS %B%
复制代码

A%N%当做变量处理,先^解释一下
回复

使用道具 举报

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

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

使用道具 举报

19213#
发表于 2024-6-1 05:49:14 来自手机 | 只看该作者
本帖最后由 hhh333 于 2024-6-1 05:55 编辑

怎么用sed去除字符串从右边开始的第一个回车换行符?看说明似乎有,但不知如何用

点评

还可以 RPOS* ENVI^ EnviMode=1 SET$ &NL=0d 0a SET &v1=111%&NL%222%&NL%333 RPOS* &&i=%&NL%,1,%&v1% IFEX #%i%  详情 回复 发表于 2024-6-1 12:13
MS(DOS/WIN) 的回车换行符是 2个 字符 0x0d 0x0a SET$ &NL=0d 0a SET &v1=111%&NL%222%&NL%333 SED &v2=,%&NL%,,%&v1% MESS. v1[%&NL%%&v1%]%&NL% v2[%&NL%%&v2%]%&NL% [%&v2?short:~3%] -----------  详情 回复 发表于 2024-6-1 11:02
\n 表示换行 SED A=1,\n,,%A%  详情 回复 发表于 2024-6-1 09:06
回复

使用道具 举报

19214#
发表于 2024-6-1 09:06:24 | 只看该作者
hhh333 发表于 2024-6-1 05:49
怎么用sed去除字符串从右边开始的第一个回车换行符?看说明似乎有,但不知如何用

\n 表示换行
SED A=1,\n,,%A%

点评

这个是从左边开始的  详情 回复 发表于 2024-6-1 09:09
回复

使用道具 举报

19215#
发表于 2024-6-1 09:09:52 | 只看该作者
liangnijian 发表于 2024-6-1 09:06
\n 表示换行
SED A=1,\n,,%A%

这个是从左边开始的

点评

SED A;/=1,\n,,%A%  详情 回复 发表于 2024-6-1 09:15
回复

使用道具 举报

19216#
发表于 2024-6-1 09:15:57 | 只看该作者
hhh333 发表于 2024-6-1 09:09
这个是从左边开始的

SED A;/=1,\n,,%A%
回复

使用道具 举报

19217#
发表于 2024-6-1 09:40:37 | 只看该作者
还是不对
  1. ENVI A=AAAAA%nl%
  2. ENVI B=BBBBB
  3. ENVI C=%A%%B%%A%%B%
  4. SED D;/=1,%nl%,,%C%
  5. MESS %C%%nl%%nl%%D%
复制代码

点评

那就试试跳数吧,也许是要程序输出的换行才能替换  详情 回复 发表于 2024-6-1 10:00
回复

使用道具 举报

19218#
发表于 2024-6-1 10:00:29 | 只看该作者

那就试试跳数吧,也许是要程序输出的换行才能替换
  1. EXEC* A=!cmd /c echo AAA&echo BBB&echo CCC
  2. SED B=1:2,\n,,%A%
  3. MESS %A%\n%B%
复制代码

回复

使用道具 举报

19219#
 楼主| 发表于 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]




点评

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

使用道具 举报

19220#
 楼主| 发表于 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]

点评

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

使用道具 举报

19221#
发表于 2024-6-1 12:44:54 | 只看该作者
本帖最后由 liangnijian 于 2024-6-1 13:00 编辑
mdyblog 发表于 2024-6-1 11:02
MS(DOS/WIN) 的回车换行符是 2个 字符 0x0d  0x0a
SET$ &NL=0d 0a
SET &v1=111%&NL%222%&NL%333

这个SED有点疑惑,还是说我的写法有问题。(名/行名前~则从右计算位置)
SED B;/=1,.*4,,%A% 加上 .* 这样可以替换掉最后一个4前面的内容
SED C;/=1,4,,%A% 少了 .* 就只能替换左边开始的第一个4
如果要从右侧开始得按你的来写吗
  1. ENVI A=1234554321
  2. SED B;/=1,.*4,,%A%
  3. SED C;/=1,4,,%A%
  4. SED D=1,4.*,,%A%
  5. SED E=1,4,,%A%
  6. MESS %B%\n%C%\n%D%\n%E%
复制代码





点评

这个说的是查询 ENVI A=12345 SED ~I=?,2,,%A% //I=4  详情 回复 发表于 2024-6-1 16:08
.*是贪婪匹配吧,尽可能匹配多  详情 回复 发表于 2024-6-1 13:32
回复

使用道具 举报

19222#
发表于 2024-6-1 13:32:48 | 只看该作者
liangnijian 发表于 2024-6-1 12:44
这个SED有点疑惑,还是说我的写法有问题。(名/行名前~则从右计算位置)
SED B;/=1,.*4,,%A% 加上 .* 这 ...

.*是贪婪匹配吧,尽可能匹配多
回复

使用道具 举报

19223#
发表于 2024-6-1 14:43:38 | 只看该作者
m大要不要搞个结构体自动对齐

点评

具体什么意思, 来个例子  详情 回复 发表于 2024-6-1 16:18
回复

使用道具 举报

19224#
 楼主| 发表于 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

点评

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

使用道具 举报

19225#
 楼主| 发表于 2024-6-1 16:18:01 | 只看该作者
泮安宁 发表于 2024-6-1 14:43
m大要不要搞个结构体自动对齐

具体什么意思, 来个例子

点评

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

使用道具 举报

19226#
发表于 2024-6-1 16:28:59 | 只看该作者
mdyblog 发表于 2024-6-1 16:08
这个说的是查询
ENVI A=12345
SED  ~I=?,2,,%A%   //I=4

那就可以加个功能了,SED默认左侧开始,加个参数从右侧开始
回复

使用道具 举报

19227#
发表于 2024-6-1 16:34:27 | 只看该作者
本帖最后由 泮安宁 于 2024-6-1 16:37 编辑
mdyblog 发表于 2024-6-1 16:18
具体什么意思, 来个例子
  1. typedef struct _CRYPTOAPI_BLOB {
  2.                             DWORD   cbData;
  3. BYTE    *pbData;
  4. }
复制代码

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


回复

使用道具 举报

19228#
发表于 2024-6-1 18:27:03 | 只看该作者
本帖最后由 hhh333 于 2024-6-1 18:32 编辑
mdyblog 发表于 2024-6-1 12:13
还可以 RPOS*

ENVI^ EnviMode=1

我以为sed可以从右边开始替换。
如果没有看来用rpos好理解一些
  1. ENVI^ EnviMode=1
  2. ENVI. nl=\n
  3. ENVI A=AAAAA%nl%
  4. ENVI B=BBBBB
  5. ENVI C=%A%%B%%A%%B%
  6. RPOS* N=%nl%,1,%C%
  7. IFEX #%N%>0,
  8. {
  9.         CALC I=%N%-1
  10.         LSTR S=%I%,%C%
  11.         CALC I=%N%+2
  12.         MSTR E=%I%,0,%C%
  13.         ENVI D=%S%%E%
  14. }
  15. MESS %C%%nl%%nl%%D%
复制代码
另外,不知道mstr有不有取倒数第一部分,和取除倒数第一部的所有部分的功能(或者取第一到倒数第一部分之间的部分),如果有的话也好解决。但最好还是sed能够提供,倒数替换的功能,那就一条语句就解决了

回复

使用道具 举报

19229#
发表于 2024-6-1 18:48:12 | 只看该作者
mdyblog 发表于 2024-6-1 11:02
MS(DOS/WIN) 的回车换行符是 2个 字符 0x0d  0x0a
SET$ &NL=0d 0a
SET &v1=111%&NL%222%&NL%333

这个也还算简洁,但要两次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%] ----------------------------------------  详情 回复 发表于 2024-6-2 00:16
回复

使用道具 举报

19230#
 楼主| 发表于 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]

点评

这么快,不错,我试一下  详情 回复 发表于 2024-6-2 11:23
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-24 11:43

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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