找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 14871|回复: 7

[问题求助] 求改写PowerShell的while语句

[复制链接]
发表于 2023-4-4 11:42:16 | 显示全部楼层 |阅读模式
我想将下面的C++语句改成powershell循环语句, 求路过大佬指导, 多谢
对 ++iLineNumCount 这行不太懂, 怎样改成通俗一些的形式
  1. long iLineNum
  2. long iLineNumCount=1
  3. while(iLineNum != 0)
  4. {
  5.     ++iLineNumCount
  6.     iLineNum /= 10
  7. }
复制代码
发表于 2023-4-4 12:43:48 | 显示全部楼层
ps有自增吧 网上一搜就有啊
 楼主| 发表于 2023-4-4 13:24:01 | 显示全部楼层
回复 3# jyswjjgdwtdtj

感谢关注,
自增不太懂, 后面又有一个 /= 直接晕了

期待路过的高手, 改一个更通俗易懂的写法
发表于 2023-4-4 14:34:33 | 显示全部楼层
回复 4# 小白龙
  1. 以js为例吧(其他的大差不差)
  2. [x++] = [++x] = [x=x+1]
  3. [x--] = [--x] = [x=x-1]
  4. [y=x++] = [x=x+1;y=x]
  5. [y=++x]=[y=x;x=x+1]
复制代码
发表于 2023-4-5 07:09:41 | 显示全部楼层
回复 4# 小白龙


x+=y即x=x+y
x-=y即x=x-y
x/=y即x=x/y
x*=y即x=x*y
 楼主| 发表于 2023-4-5 19:52:33 | 显示全部楼层
本帖最后由 小白龙 于 2023-4-5 20:13 编辑

回复 5# jyswjjgdwtdtj
最上面的语句, 我理解起来确实有点难度, 现在还是看不懂

求路过大佬, 分解一下

完整代码如下:
它主要的作用是控制一些文本编辑器左侧的 行号栏 的宽度, 例如 只有1行文本时, 就是1个数字的宽度, 当有大于9行文本时, 就是两个数字的宽度, 当有大于99行文本时, 就是3个数字的宽度,以此类推
效果如下图
  1.         void UpdateLineNumberWidth(void)
  2.         {
  3.                 //start 显示行号
  4.                 long  iLineMarginWidthNow;
  5.                 long  iLineMarginWidthFit;
  6.                 long iLineNum = SendMessage( SCI_GETLINECOUNT, 0, 0 );
  7.                 long iLineNumCount = 1;
  8.                 while( iLineNum != 0 )
  9.                 {
  10.                         ++iLineNumCount;
  11.                         iLineNum /= 10;
  12.                 }
  13.                 iLineMarginWidthNow = SendMessage( SCI_GETMARGINWIDTHN, 0, 0 );
  14.                 long charWidth = SendMessage( SCI_TEXTWIDTH, STYLE_LINENUMBER, (LPARAM)("9") );
  15.                 iLineMarginWidthFit = charWidth * iLineNumCount;
  16.                 if ( iLineMarginWidthNow != iLineMarginWidthFit )
  17.                 {
  18.                         SendMessage( SCI_SETMARGINWIDTHN, 0, iLineMarginWidthFit );
  19.                 }
  20.                 //end of 显示行号
  21.         }
复制代码
发表于 2023-4-5 21:12:50 | 显示全部楼层
回复 6# 小白龙


    不是 这怎么会有难度呢?
发表于 2023-4-5 21:15:45 | 显示全部楼层
那我帮你改一下吧
while(true){
if(iLineNum==0){
break;
}
iLineNumCount=iLineNumCount+1;
iLineNum=iLineNum/10
}

这要是还看不懂那么我也没办法了

评分

参与人数 1技术 +1 收起 理由
小白龙 + 1 乐于助人

查看全部评分

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

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:32 , Processed in 0.018151 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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