AHK字符串反转、竖排示例

字符串反转与字符串竖向排版

 

/*
	Right:1—竖排从右始排版0—竖排从左始排版
	Rows:每列字数
	U:精确分割字符串,很多双字节汉字用StrSplit分割不行 U参为1时用正则精准分割
*/
;;字符串竖向排版
VerticalString(ByRef String,Right=0,delimiter:="",U=0,Rows=12){
	index:=1, result:="",tarr:=[]
	If (!String)
		return []
	String:=RegExReplace(String,"(*BSR_ANYCRLF)\R|\t")
	if U {
		While index:=RegExMatch(String, "O).", match, index){
			if match.Value
				tarr.push(match.Value), index+=match.Len
		}
	}else
        tarr:=StrSplit(String)
    Col:=Ceil(objCount(tarr)/Rows)
	Loop, % Rows
	{
		Index:=A_Index
		Loop, % Col
		{
			result.=tarr[(Right?Col-A_Index:A_Index-1)*Rows+Index]?tarr[(Right?Col-A_Index:A_Index-1)*Rows+Index] delimiter:A_Space A_Space A_Space delimiter
		}
		result:=Trim(result,delimiter) "`r`n"
	}
	String:=result,result:=""

	Return String
}

chars=
(
赵客缦胡缨,吴钩霜雪明。
银鞍照白马,飒沓如流星。
十步杀一人,千里不留行。
事了拂衣去,深藏身与名。
闲过信陵饮,脱剑膝前横。
将炙啖朱亥,持觞劝侯嬴。
三杯吐然诺,五岳倒为轻。
眼花耳热后,意气素霓生。
救赵挥金槌,邯郸先震惊。
)

MsgBox % VerticalString(chars,1,"",1)

;;字符串反转
ReverseString(ByRef String) {
	String .= "", DllCall("msvcrt.dll\_wcsrev", "Ptr", &String, "CDecl")
	return String
}

MsgBox % ReverseString("十步杀一人,千里不留行。")

给TA捐赠
共{{data.count}}人
人已捐赠
其他应用

令牌窃取: 以系统权限启动或降权启动程序

2021-12-1 16:31:51

其他

获取程序Edit框光标位置选中字符串,自测!

2021-12-1 16:53:06

2 条回复 A文章作者 M管理员
  1. 白云朵朵

    学习了

  2. ccc

    大佬这代码很好用

个人中心
购物车
优惠劵
有新私信 私信列表
搜索