用于解决AHKv1版单变量最大容纳 16383字节 的问题

 

; 用于解决AHKv1版单变量最大容纳 16383字节 的问题
; 备注:弹出报错是哪块,就说明哪块代码超出字符限制。【比如弹出2=的首行就是2号块超字限制】
; 对于超限制的解决方法是,将部分代码上移或者下移到临近块。或者删注释

#NoEnv
#KeyHistory 0
#MaxMem 256
#MaxThreads 255
#SingleInstance Force
SetBatchLines -1
ListLines Off

FileSelectFile, _From_File, , ,选择要分割生成的AHK代码,(*.ahk; *.ahk2; *.ahkh)

FileRead, OutData, %_From_File%

字节统计 := 0
, 拼接变量名 := 1
, VarSetCapacity(临时缓存, 102400000)

Loop, Parse, OutData, `n, `r
{
  if (SubStr(LTrim(A_LoopField), 1, 1)=")")
    处理后行 := StrReplace(A_LoopField, ")", "þ右括号š")
  else
    处理后行 := A_LoopField

  当前行字节数 := StrPut(处理后行, "UTF-8") ; 使用StrPut计算实际字节长度
  , 临时缓存 .= 处理后行 "`r`n"
  , 字节统计 += 当前行字节数

  if (字节统计>16300)
    拼接合并完整代码 .= "`r`n" 拼接变量名++ "=`r`n(LTrim `` %`r`n`r`n" 临时缓存 ")`r`n"
    , 字节统计 := 0, 临时缓存 := ""
}

拼接合并完整代码 .= "`r`n" 拼接变量名 "=`r`n(LTrim `` %`r`n`r`n" 临时缓存 ")`r`n"
, 拼接合并完整代码 .="`r`nLoop " 拼接变量名 "`r`n"
, 拼接合并完整代码 .="  代码块整合 .= StrReplace(%A_Index%, ""þ右括号š"", "")""), %A_Index% := """"`r`n"
, Clipboard := 拼接合并完整代码

MsgBox 0x40, 分割完成, 拼接合并后的完整代码,已经存入剪贴板, 1

Return

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。