CnPack Forum


 
Subject: 建议弄一个多行代码合并到一行的小功能
西方失败
灌水科科长
Rank: 3Rank: 3



UID 455028
Digest Posts 0
Credits 161
Posts 55
点点分 161
Reading Access 10
Registered 2021-12-18
Status Offline
Post at 2025-10-7 22:22  Profile | Blog | P.M. 
建议弄一个多行代码合并到一行的小功能

有时候需要把比较短的代码合并到一行节约版面,尤其是干同一件事的几句代码合并到一起比较一目了然逻辑清楚.

比如
a:=b;
b:=c+2;
......
......
e:=a+b;
处理后变成这样
  {(*}a:=b;b:=c+2;......e:=a+b;{*)}

如果行数比较多手动一行一行的删回车就比较麻烦,自动这样就节约了版面又可以防止自动格式恢复成多行.

[ 本帖最后由 西方失败 于 2025-10-7 22:30 编辑 ]
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6918
Posts 3626
点点分 6918
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2025-10-9 23:23  Profile | Blog | P.M. 
如此小众的需求,写个脚本就能搞定。
Top
西方失败
灌水科科长
Rank: 3Rank: 3



UID 455028
Digest Posts 0
Credits 161
Posts 55
点点分 161
Reading Access 10
Registered 2021-12-18
Status Offline
Post at 2025-10-9 23:52  Profile | Blog | P.M. 
好吧老大,新手还不会脚本,假如自己写脚本的话,思路应该是用剪贴板把选中的代码复制然后处理然后再粘贴新代码吗?

[ 本帖最后由 西方失败 于 2025-10-10 00:00 编辑 ]
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6918
Posts 3626
点点分 6918
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2025-10-12 09:02  Profile | Blog | P.M. 
可以直接处理选择区,参考安装目录下的PSDemo\CommentCode.pas
Top
西方失败
灌水科科长
Rank: 3Rank: 3



UID 455028
Digest Posts 0
Credits 161
Posts 55
点点分 161
Reading Access 10
Registered 2021-12-18
Status Offline
Post at 2025-10-13 16:20  Profile | Blog | P.M. 
感谢老大指点,这个为啥加个trim就报错呢,跟分号有啥关系吗?


Image Attachment: 20251013-1.png (2025-10-13 16:20, 25.66 K)

Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6918
Posts 3626
点点分 6918
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2025-10-14 14:00  Profile | Blog | P.M. 
字符串没这方法,Pascal Script的语法还是很基本的Pascal。

得用Trim(Lines[I]);
Top
西方失败
灌水科科长
Rank: 3Rank: 3



UID 455028
Digest Posts 0
Credits 161
Posts 55
点点分 161
Reading Access 10
Registered 2021-12-18
Status Offline
Post at 2025-10-14 22:40  Profile | Blog | P.M. 
确实是,感谢老大,我这样写出来比如选中的是3到8行,老是把第9行也合并进去了不知道为啥.
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6918
Posts 3626
点点分 6918
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2025-10-15 16:09  Profile | Blog | P.M. 
是不是选择区包括了第九行的头部?
Top
西方失败
灌水科科长
Rank: 3Rank: 3



UID 455028
Digest Posts 0
Credits 161
Posts 55
点点分 161
Reading Access 10
Registered 2021-12-18
Status Offline
Post at 2025-10-15 23:17  Profile | Blog | P.M. 
没有选择到第9行的头部 只选择到了第8行的尾部
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6918
Posts 3626
点点分 6918
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2025-10-19 12:08  Profile | Blog | P.M. 
你用的D几?我这边还复现不出来这个问题。
Top
西方失败
灌水科科长
Rank: 3Rank: 3



UID 455028
Digest Posts 0
Credits 161
Posts 55
点点分 161
Reading Access 10
Registered 2021-12-18
Status Offline
Post at 2025-10-19 14:59  Profile | Blog | P.M. 
我用的d13,fmx程序

var
  Lines: TStringList;
  i: Integer;

begin
  Lines := TStringList.Create;
  try
    if IdeGetEditorSelectedLines(Lines) then
    begin
      for i := 1 to Lines.Count - 1 do
      begin
        Lines[0] := Lines[0] + Trim(Lines);
      end;
      for i := Lines.Count - 1 downto 1 do
        lines.delete(i);
      IdeSetEditorSelectedLines(Lines);
    end;
  finally
    Lines.Free;
  end;
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6918
Posts 3626
点点分 6918
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2025-10-19 18:57  Profile | Blog | P.M. 
D13还真有这问题,我看看为啥新版本会出。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6918
Posts 3626
点点分 6918
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2025-10-19 22:03  Profile | Blog | P.M. 
1289修复了,一个隐藏较深的Bug,似乎是高版本TStrings不兼容导致的。
Top
西方失败
灌水科科长
Rank: 3Rank: 3



UID 455028
Digest Posts 0
Credits 161
Posts 55
点点分 161
Reading Access 10
Registered 2021-12-18
Status Offline
Post at 2025-10-20 00:48  Profile | Blog | P.M. 
哦哦,可以了,感谢老大.
Top
 




All times are GMT++8, the time now is 2025-11-16 16:56

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.009240 second(s), 10 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP