从字符串中提取任何行或连续行.ahk
; https://www.autohotkey.com/boards/viewtopic.php?f=6&t=74127 ; MsgBox % LineStr("Item 1|Item 2|Item 3|Item 4", 2, 1, "|") H := "Line_1`r`nLine_2`r`nLine_3`r`nLine_4`r`nLine_5`r`nLine_6`r`nLine_7`r`nLine_8`r`nLine_9" MsgBox,,Example 1, % "提取第一行`n`n" . LineStr(H, 1, 1) MsgBox,,Example 2, % "提取前两行`n`n" . LineStr(H, 1, 2) MsgBox,,Example 3, % "提取行5`n`n" . LineStr(H, 5, 1) MsgBox,,Example 4, % "从第五行提取全部内容 `n`n" . LineStr(H, 5) MsgBox,,Example 5, % "从第五行提取3行`n`n" . LineStr(H, 5, 3) MsgBox,,Example 6, % "提取最后一行`n`n" . LineStr(H, 0) MsgBox,,Example 7, % "提取最后2行`n`n" . LineStr(H, -1) MsgBox,,Example 8, % "提取最后一行之前的2行`n`n" . LineStr(H, -2,2) MsgBox,,Example 9, % "提取除第一行和最后一行以外的所有行`n`n" . LineStr(H, 2,-1) LineStr(ByRef S, P, C:="", D:="") { ; LineStr v0.9d, by SKAN on D341/D449 @ tiny.cc/linestr Local L := StrLen(S), DL := StrLen(D:=(D ? D : Instr(S,"`r`n") ? "`r`n" : "`n") ), F, P1, P2 Return SubStr(S,(P1:=L?(P!=1&&InStr(S,D,,0))?(F:=InStr(S,D,,P>0,Abs(P-1)))?F+DL:P-1<1?1:0:(F:=1) :0),(P2:=(P1&&C!=0)?C!=""?(F:=InStr(S,D,,(C>0?F+DL:0),Abs(C)))?F-1:C>0?L:1:L:0)>=P1?P2-P1+1:0) }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)