|
|
@@ -36,47 +36,47 @@ func (mt *MQLTest) ReplaceLoopSN(str string,
|
|
|
// file_loopi := mt.scopevars.mql[mqlsn].vars["filei"].(int)
|
|
|
// mql_loopi := mt.scopevars.mql[mqlsn].vars["mqli"].(int)
|
|
|
// mt.scopevars.RUnlock()
|
|
|
- if false {
|
|
|
- // 替换前编码,避免重复替换
|
|
|
- str = strings.ReplaceAll(str, "&", "&=;")
|
|
|
- str = strings.ReplaceAll(str, "0", "&0;")
|
|
|
- str = strings.ReplaceAll(str, "9", "&9;")
|
|
|
- // 替换 00009999
|
|
|
- loopn := fmt.Sprintf("&0;%09d", (mql_loopi % 1000000000))
|
|
|
- str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;&9;&9;&9;&9;", loopn)
|
|
|
- loopn = fmt.Sprintf("&0;%08d", (mql_loopi % 100000000))
|
|
|
- str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;&9;&9;&9;", loopn)
|
|
|
- loopn = fmt.Sprintf("&0;%07d", (mql_loopi % 10000000))
|
|
|
- str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;&9;&9;", loopn)
|
|
|
- loopn = fmt.Sprintf("&0;%06d", (mql_loopi % 1000000))
|
|
|
- str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;&9;", loopn)
|
|
|
- loopn = fmt.Sprintf("&0;%05d", (mql_loopi % 100000))
|
|
|
- str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;", loopn)
|
|
|
- loopn = fmt.Sprintf("&0;%04d", (mql_loopi % 10000))
|
|
|
- str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;", loopn)
|
|
|
- loopn = fmt.Sprintf("&0;&0;%03d", (mql_loopi % 1000))
|
|
|
- str = strings.ReplaceAll(str, "&0;&0;&9;&9;&9;", loopn)
|
|
|
- loopn = fmt.Sprintf("&0;&0;&0;%02d", (mql_loopi % 100))
|
|
|
- str = strings.ReplaceAll(str, "&0;&0;&0;&9;&9;", loopn)
|
|
|
- loopn = fmt.Sprintf("&0;&0;&0;&0;%d", (mql_loopi % 10))
|
|
|
- str = strings.ReplaceAll(str, "&0;&0;&0;&0;&9;", loopn)
|
|
|
- // 替换 00000000
|
|
|
- all_1 := fmt.Sprintf("%d", (top_loopi % 10))
|
|
|
- all_2 := fmt.Sprintf("%02d", (top_loopi % 100))
|
|
|
- dir_1 := fmt.Sprintf("%d", (dir_loopi % 10))
|
|
|
- dir_2 := fmt.Sprintf("%02d", (dir_loopi % 100))
|
|
|
- file_4 := fmt.Sprintf("%04d", (file_loopi % 10000))
|
|
|
- //
|
|
|
- str = strings.ReplaceAll(str, "&0;&0;&0;&0;&0;&0;&0;&0;", all_2+dir_2+file_4)
|
|
|
- str = strings.ReplaceAll(str, "&0;&0;&0;&0;&0;&0;&0;", all_1+dir_2+file_4)
|
|
|
- str = strings.ReplaceAll(str, "&0;&0;&0;&0;&0;&0;", dir_2+file_4)
|
|
|
- str = strings.ReplaceAll(str, "&0;&0;&0;&0;&0;", dir_1+file_4)
|
|
|
- str = strings.ReplaceAll(str, "&0;&0;&0;&0;", file_4)
|
|
|
- // 替换后解码
|
|
|
- str = strings.ReplaceAll(str, "&9;", "9")
|
|
|
- str = strings.ReplaceAll(str, "&0;", "0")
|
|
|
- str = strings.ReplaceAll(str, "&=;", "&")
|
|
|
- }
|
|
|
+ // if false {
|
|
|
+ // // 替换前编码,避免重复替换
|
|
|
+ // str = strings.ReplaceAll(str, "&", "&=;")
|
|
|
+ // str = strings.ReplaceAll(str, "0", "&0;")
|
|
|
+ // str = strings.ReplaceAll(str, "9", "&9;")
|
|
|
+ // // 替换 00009999
|
|
|
+ // loopn := fmt.Sprintf("&0;%09d", (mql_loopi % 1000000000))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;&9;&9;&9;&9;", loopn)
|
|
|
+ // loopn = fmt.Sprintf("&0;%08d", (mql_loopi % 100000000))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;&9;&9;&9;", loopn)
|
|
|
+ // loopn = fmt.Sprintf("&0;%07d", (mql_loopi % 10000000))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;&9;&9;", loopn)
|
|
|
+ // loopn = fmt.Sprintf("&0;%06d", (mql_loopi % 1000000))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;&9;", loopn)
|
|
|
+ // loopn = fmt.Sprintf("&0;%05d", (mql_loopi % 100000))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;&9;", loopn)
|
|
|
+ // loopn = fmt.Sprintf("&0;%04d", (mql_loopi % 10000))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&9;&9;&9;&9;", loopn)
|
|
|
+ // loopn = fmt.Sprintf("&0;&0;%03d", (mql_loopi % 1000))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&0;&9;&9;&9;", loopn)
|
|
|
+ // loopn = fmt.Sprintf("&0;&0;&0;%02d", (mql_loopi % 100))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&0;&0;&9;&9;", loopn)
|
|
|
+ // loopn = fmt.Sprintf("&0;&0;&0;&0;%d", (mql_loopi % 10))
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&0;&0;&0;&9;", loopn)
|
|
|
+ // // 替换 00000000
|
|
|
+ // all_1 := fmt.Sprintf("%d", (top_loopi % 10))
|
|
|
+ // all_2 := fmt.Sprintf("%02d", (top_loopi % 100))
|
|
|
+ // dir_1 := fmt.Sprintf("%d", (dir_loopi % 10))
|
|
|
+ // dir_2 := fmt.Sprintf("%02d", (dir_loopi % 100))
|
|
|
+ // file_4 := fmt.Sprintf("%04d", (file_loopi % 10000))
|
|
|
+ // //
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&0;&0;&0;&0;&0;&0;&0;", all_2+dir_2+file_4)
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&0;&0;&0;&0;&0;&0;", all_1+dir_2+file_4)
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&0;&0;&0;&0;&0;", dir_2+file_4)
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&0;&0;&0;&0;", dir_1+file_4)
|
|
|
+ // str = strings.ReplaceAll(str, "&0;&0;&0;&0;", file_4)
|
|
|
+ // // 替换后解码
|
|
|
+ // str = strings.ReplaceAll(str, "&9;", "9")
|
|
|
+ // str = strings.ReplaceAll(str, "&0;", "0")
|
|
|
+ // str = strings.ReplaceAll(str, "&=;", "&")
|
|
|
+ // }
|
|
|
// 正则表达式实现,内部计数变量替换
|
|
|
idxs := refmtvar.FindAllStringSubmatchIndex(str, -1)
|
|
|
if len(idxs) > 0 {
|
|
|
@@ -95,6 +95,21 @@ func (mt *MQLTest) ReplaceLoopSN(str string,
|
|
|
nstr += "{" + format[1:] + "," + varname + "}"
|
|
|
} else {
|
|
|
switch varname {
|
|
|
+ case "now":
|
|
|
+ tf := format[1:]
|
|
|
+ switch tf {
|
|
|
+ case "ns":
|
|
|
+ nstr = fmt.Sprint(time.Now().UnixNano())
|
|
|
+ case "us":
|
|
|
+ nstr = fmt.Sprint(time.Now().UnixMicro())
|
|
|
+ case "ms":
|
|
|
+ nstr = fmt.Sprint(time.Now().UnixMilli())
|
|
|
+ case "t":
|
|
|
+ tf = "2006-01-02 15:04:05"
|
|
|
+ nstr += time.Now().Format(tf)
|
|
|
+ default:
|
|
|
+ nstr += time.Now().Format(tf)
|
|
|
+ }
|
|
|
case "rand":
|
|
|
nstr += fmt.Sprintf(format, rand.Intn(1000000))
|
|
|
case "mqli":
|