218 KiB
基础函数
内容
- 数字
- 日期时间
- 字符串
- 数组
数字
内容
- FloatN
- FloatToStrEx
- FormatFloatExt
- WebZero
- RoundTo5
- SimpleRoundTo2
- DivValue
- Dataisequal
FloatN
用途:将浮点数按指定小数位数四舍五入。 参数:value 为输入数值;digits 为保留的小数位数。 返回:数值。
范例
return FloatN(12.6578, 2);
// 结果:12.66
FloatToStrEx
用途:将浮点数格式化为字符串,保留指定小数位数。 参数:value 为输入数值;digits 为保留的小数位数。 返回:字符串。
范例
return FloatToStrEx(12.6578, 2);
// 结果:’ 12.66’
FormatFloatExt
用途:按扩展格式输出数值字符串,支持千分位与空值处理。 参数:value 为输入数值;format 为格式参数(可选)。 返回:字符串。
范例
return FormatFloatExt(12345.67, 1);
// 结果:’ 12,345.67’
return FormatFloatExt("123");
// 结果:’ -’
WebZero
用途:当数值为 0 时返回空字符串,否则返回数值字符串。 参数:value 为输入数值。 返回:字符串。
范例
return WebZero(0);
// 结果:’’ // 空字串
RoundTo5
用途:将数值按 0.5 的步长进行四舍五入。 参数:value 为输入数值。 返回:数值。
范例
return RoundTo5(0.35);
// 结果:0.5
SimpleRoundTo2
用途:按指定小数位数进行四舍五入(对负数同样生效)。 参数:value 为输入数值;digits 为保留的小数位数。 返回:数值。
范例
范例01:
return SimpleRoundTo2(1234.56789654, -2);
// 结果:1234.57
范例02:
return SimpleRoundTo2(-1234.5658965, -2);
// 结果:-1234.56
DivValue
用途:当除数不为 0 时返回 v1 / v2,否则返回 0。 参数:v1 为被除数;v2 为除数。 返回:数值。
算法如果v2不为0,则返回v1/v2,否则返回0。范例
return DivValue(8, 2);
// 返回:4
Dataisequal
用途:判断两个数据是否相等。 参数:a 与 b 为待比较的数据。 返回:布尔值。
日期时间
内容
- ISO8601
- GMT时间
- 常用日期时间函数
- 简单转换函数
- 普通日期函数
- 分解函数
- 起始结束函数
- 关系函数
- 范围判定函数
- 范围获得函数
- 范围生成函数
- 时间推移函数
- 组合、分解日期函数
- 日期重组函数
- 日期格式的转换
- 宽字节日期格式转换函数
ISO8601
标有ISO8601标准的函数的含义包括以下几点:
1、对于某一周属于某年(或某月)的认定标准是是否有四天以上属于某年(或某月)。例如,对于某年第一周的认定是此年的第一个星期四所在的周。这保证了这个周至少有4天在这个年份中。
这同时意味着一年总的周数必然是52或53。
2、一周的开始是星期一,结束是星期天。分别用1到7的数字表示。
GMT时间
GMT时间就是英国格林威治时间,也就是世界标准时间,是本初子午线上的地方时,是0时区的区时,与我国的标准时间北京时间(东八区)相差8小时,即晚8小时。
当GMT时间为00:00:00时,北京时间为8:00:00。
常用日期时间函数
####### 内容
- Time
- DecodeTime
- DayOfWeek
- EncodeTime
- Now
- DecodeDate
- Date
- TryEncodeDate
- TryEncodeTime
- DecodeDateFully
- EncodeDate
- TryStrToDate
- StrToDateTimeDef
- DateTimeToInternetStr
- IncAMonth
- StrToTime
- CurrentYear
- TryStrToTime
- StrToDate
- DateTimeGMTToHttpStr
- DateToStr
- StrToTimeDef
- DateTimeToStr
- DateTimeToString
- Strtodatetime2
- FormatDateTime
- DateTimeGMTToCookieStr
- StrToDateTime
- IsLeapYear
- GMTToLocalDateTime
- TimeToStr
- StrToDateDef
- TryStrToDateTime
####### Time
用途:日期时间处理函数。 参数:无。 返回:日期或时间值。
范例
return Time(); // 输出0.59
参考TDateTime
####### DecodeTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
DecodeTime(strtoTime("13:33:45.500"), hour, min, sec, msec);
return array(hour, min, sec, msec);
// 返回 array(13,33,45,500)
参考TDateTime EncodeDate EncodeTime TryEncodeDate TryEncodeTime DecodeDateFully DecodeDate
####### DayOfWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
dow := DayOfWeek(EncodeDate(2011, 8, 8));
return dow; // 输出:2
参考TDateTime
####### EncodeTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
Time1 := EncodeTime(12, 35, 35, 100);
return time1; // 输出:0.52471(12:35:35.1)
参考TDateTime EncodeDate TryEncodeDate TryEncodeTime DecodeTime DecodeDate DecodeDateFully
####### Now
用途:日期时间相关函数。 参数:无。 返回:处理后的结果值。
范例
return Now(); // 输出40763.59
参考TDateTime
####### DecodeDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
DecodeDate(inttodate(20140115), year, month, day);
return array(year, month, day );
// 输出array(2014,1,15)
参考TDateTime EncodeDate DecodeTime DecodeDateFully EncodeTime TryEncodeDate TryEncodeTime
####### Date
用途:日期时间处理函数。 参数:无。 返回:日期或时间值。
范例
// 当前的日期
return Date(); // 输出41656
参考TDateTime
####### TryEncodeDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
if TryEncodeDate(2011, 12, 25, date) then return date; // 输出:40902
else return "encode error";
// 输出 encode error
if TryEncodeDate(2011, 12, 32, date) then return date
else return "encode error";
// 输出 encode error
参考TDateTime EncodeDate TryEncodeTime DecodeTime DecodeDate DecodeDateFully EncodeTime
####### TryEncodeTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
if TryEncodeTime(12, 20, 30, 200, time) then return time//输出:0.51
else return "eccode error ";
参考TDateTime EncodeDate DecodeTime DecodeDate DecodeDateFully EncodeTime TryEncodeDate
####### DecodeDateFully
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
Flag := DecodeDateFully(inttodate(20140115), year, month, day, dow);
fname := ifthen(1, '闰年', '平年');
return array(year, month, day, dow, fname);
// 返回:array(2014,1,15,4,'闰年')
参考TDateTime EncodeDate DecodeTime EncodeTime TryEncodeDate TryEncodeTime DecodeDate
####### EncodeDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
date := EncodeDate(2011, 8, 6);
return date; // 输出:40761
参考TDateTime EncodeTime TryEncodeDate TryEncodeTime DecodeDate DecodeDateFully DecodeTime
####### TryStrToDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
if TryStrToDate("2010-02-04 ", date) then return date; // 输出40213
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### StrToDateTimeDef
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToDateTimeDef("2011-08-08 16:61:16 ", now()); // 输出当前系统日期时间
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### DateTimeToInternetStr
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
EndT := strtodatetime('2014-01-01 10:00:00');
datetime := DateTimeToInternetStr(EndT, 0);
return datetime; // 输出Wed, 1 Jan 2014 10:00:00 +0800
####### IncAMonth
范例
year := 2011;
month := 8;
day := 8;
IncAmonth(year, month, day, 4);
return EncodeDate(year, month, day); // 输出40885
####### StrToTime
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToTime("15:20:34"); // 输出0.64
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### CurrentYear
用途:日期时间相关函数。 参数:无。 返回:处理后的结果值。
范例
return CurrentYear(); // 输出2011
####### TryStrToTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
if TryStrToTime("15:52:35", time) then return time; // 输出0.66
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### StrToDate
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToDate("2010-02-04"); // 输出40213
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### DateTimeGMTToHttpStr
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
EndT := strtodatetime('2014-01-01 10:00:00');
datetime := DateTimeGMTToHttpStr(EndT);
return datetime; // 输出:Wed, 01 Jan 2014 10:00:00 GMT
####### DateToStr
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
EndT := inttodate(20140117);
return DateToStr(EndT); // 输出 2014-01-17
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### StrToTimeDef
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
time := StrToTimeDef("15:61:34 ", time());
return time; // 输出当前系统时间
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### DateTimeToStr
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
EndT := now();
return DateTimeToStr(EndT); // 输出当前系统日期时间
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### DateTimeToString
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
DateTimeToString(result, 'YYYY-MM-DD HH:NN:SS', now());
return result; // 输出当期系统日期时间
参考TDateTime SetFormatLocalCode GetFormatLocalCode
差异说明在不同操作系统中,返回的日期格式会有所差异,差异同FormaTDateTime,FAQ:FormatDateTime
####### Strtodatetime2
范例
// 字符串2021-8-12 10:31:24:199 转换为日期时间格式(包含毫秒)
s := "2021-8-12 10:31:24:199"
return StrToDateTime2(s); // 结果:44420.4384745255
####### FormatDateTime
用途:按指定格式输出结果。 参数:
返回:日期或时间值。
范例
return FormatDateTime("C", now()); // 输出2011-08-08 16:27:08
return FormatDateTime("Dddddd", now()); // 输出2011年8月8日
参考SetFormatLocalCode GetFormatLocalCode
差异说明其转换结果依赖运行环境的操作系统的日期时间格式,如表示星期时,有些操作系统上表示方式为“周五”,而有些操作系统上表示为“五”。
####### DateTimeGMTToCookieStr
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
EndT := strtodatetime('2014-01-01 10:00:00');
datetime := DateTimeGMTToCookieStr(EndT);
return datetime; // 输出Wed, 01-Jan-2014 10:00:00 GMT
####### StrToDateTime
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToDateTime("2011-08-08 16:00:16 "); // 输出40763.67
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### IsLeapYear
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
return IsLeapYear(2000); // 输出1
return IsLeapYear(2011); // 输出0
参考IsInLeapYear
####### GMTToLocalDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
GMT := "Wed, 01 Jan 2014 10:00:00 GMT ";
datetime := GMTToLocalDateTime(GMT);
return datetime; // 输出:41640.75 (时间为2014-01-01 18:00:00)
####### TimeToStr
范例
// 输入时间或者日期时间
return timeToStr(0.5);
return timetostr(now());
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### StrToDateDef
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToDateDef("2010-02-30", date()); // 转换失败输出当前日期40763
参考TDateTime SetFormatLocalCode GetFormatLocalCode
####### TryStrToDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
if TryStrToDateTime("2010-02-04 16:11:35 ", datetime) then return datetime; // 输出40213.67
参考TDateTime SetFormatLocalCode GetFormatLocalCode
简单转换函数
####### 内容
- DateToInt
- IntToDate
- StrToDateExt
- ExcelIntToDate
- ExcelDateToInt
- FormatStrToDateTime2
####### DateToInt
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
DateTime := 40559;
return DateToInt(DateTime);
// 结果:20110116
####### IntToDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
Rdate := 20110116;
return IntToDate(Rdate);
// 结果: 40559
####### StrToDateExt
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
S := '16/1/2011';
StrFormat := 0;
return StrToDateExt(S, StrFormat);
// 结果:40559
####### ExcelIntToDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
// 报告期为2010年年报
RDate := 20101231;
return ExcelIntToDate(RDate);
// 结果:40543
####### ExcelDateToInt
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
RDate := 20101231;
return ExcelDateToInt(RDate);
// 结果:20101231
####### FormatStrToDateTime2
用途:按指定格式输出结果。 参数:
返回:日期或时间值。
范例
// 字符串2021-8-12 10:31:24:199 转换为日期时间格式(包含毫秒)
s := "2021.01.04T23:00:00.000";
FormatStr := "yyyy.mm.ddThh:nn:ss.zzz";
return FormatStrToDateTime2(S, FormatStr); // 结果:44200.9583333333
普通日期函数
####### 内容
- IsInLeapYear
- IsPM
- IsValidDate
- IsValidTime
- IsValidDateTime
- IsValidDateDay
- IsValidDateWeek
- IsValidDateMonthWeek
- WeeksInYear
- WeeksInAYear
- DaysInYear
- DaysInAYear
- DaysInMonth
- DaysInAMonth
- Today
- Yesterday
- Tomorrow
- IsToday
- IsSameDay
####### IsInLeapYear
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
if IsInLeapYear(date) then return "this year is a leap year "
else return "this year is not a leap year ";
参考TDateTime IsLeapYear
####### IsPM
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
if IsPM(Time()) then return "is PM "
else return "is AM ";
参考TDateTime
####### IsValidDate
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
if IsValidDate(2011, 8, 34) then return "right "
else return "wrong ";
// 输出 wrong
参考IsValidTime IsValidDateTime IsValidDateDay IsValidDateWeek IsValidDateMonthWeek
####### IsValidTime
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
if IsValidTime(17, 48, 45, 678) then return "right time "
else return "wrong time "; // 输出 right time
参考IsValidDate IsValidDateTime IsValidDateDay IsValidDateWeek IsValidDateMonthWeek
####### IsValidDateTime
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
if IsValidDateTime(2011, 8, 8, 17, 57, 56, 245) then return "right "
else return "wrong ";
// 输出 right
参考IsValidDate IsValidTime IsValidDateDay IsValidDateWeek IsValidDateMonthWeek
####### IsValidDateDay
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
if IsValidDateDay(2010, 345) then return "valid "
else return "not valid ";
// 输出 valid
参考IsValidDate IsValidTime IsValidDateTime IsValidDateWeek IsValidDateMonthWeek
####### IsValidDateWeek
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
if IsValidDateWeek (2010, 15, 4) then return "valid "
else return "not valid ";
// 输出 valid
参考IsValidDate IsValidTime IsValidDateTime IsValidDateDay IsValidDateMonthWeek
####### IsValidDateMonthWeek
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
if IsValidDateMonthWeek(2000, 10, 2, 3) then return "valid "
else return "not valid ";
输出 valid参考IsValidDate IsValidTime IsValidDateTime IsValidDateDay IsValidDateWeek
####### WeeksInYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
num := WeeksInYear (Date());
return num; // 输出52
参考TDateTime WeeksInAYear DaysInYear DaysInAYear DaysInMonth DaysInAMonth
####### WeeksInAYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
num := WeeksInAYear (2010);
return num; // 输出52
参考WeeksInYear DaysInYear DaysInAYear DaysInMonth DaysInAMonth
####### DaysInYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
days := DaysInYear (Date());
return days; // 输出365
参考TDateTime WeeksInYear WeeksInAYear DaysInAYear DaysInMonth DaysInAMonth
####### DaysInAYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
days := DaysInAYear (2010);
return days; // 输出365
参考WeeksInYear WeeksInAYear DaysInYear DaysInMonth DaysInAMonth
####### DaysInMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
days := DaysInMonth (inttodate(20131201));
return days; // 输出31
参考TDateTime WeeksInYear WeeksInAYear DaysInYear DaysInAYear DaysInAMonth
####### DaysInAMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
days := DaysInAMonth (2010, 2);
return days; // 输出28
参考WeeksInYear WeeksInAYear DaysInYear DaysInAYear DaysInMonth
####### Today
用途:日期时间相关函数。 参数:无。 返回:处理后的结果值。
范例
datetime := Today();
return DateToStr(datetime); // 输出2011-08-08
参考TDateTime Yesterday Tomorrow
####### Yesterday
用途:日期时间相关函数。 参数:无。 返回:处理后的结果值。
范例
Datetime := Yesterday();
return DateToStr(datetime); // 输出2011-08-07
参考TDateTime Today Tomorrow
####### Tomorrow
用途:日期时间相关函数。 参数:无。 返回:处理后的结果值。
范例
Datetime := Tomorrow();
return DateToStr(datetime); // 输出2011-08-09
参考TDateTime Today Yesterday
####### IsToday
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
Today := today();
Aday := today + 2;
if istoday(aday) then return "aday is today "
else return "aday is not today "; // 输出aday is not today
参考TDateTime
####### IsSameDay
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
Today := today();
Aday := today + 2;
if isSameDay(aday, today) then return "sameday "
else return " not sam day"; // 输出:not sameday
参考TDateTime
分解函数
####### 内容
- DateOf
- TimeOf
- YearOf
- MonthOf
- DayOf
- HourOf
- MinuteOf
- SecondOf
- MilliSecondOf
####### DateOf
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return DateOf(now()); // 返回今天的日期
参考TDateTime TimeOf DecodeDate
####### TimeOf
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return TimeOf (now()); // 返回当前所处的时间点
// 截取某个日期时间的时间点
EndT := strtodatetime("2014-01-17 10:00:00");
return TimeOf(EndT); // 返回0.4167
参考TDateTime DecodeTime DateOf
####### YearOf
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := Yearof(strToDate('2010-08-08'));
return year;
// 输出: 2010
参考TDateTime DecodeDate MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf
####### MonthOf
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
month := Monthof(strToDate('2010-08-08'));
return month; // 输出: 8
参考TDateTime DecodeDate YearOf DayOf HourOf MinuteOf SecondOf MilliSecondOf
####### DayOf
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
hour := dayof(strtodatetime('2011-08-08 11:22:06'));
return hour; // 输出: 8
参考TDateTime DecodeDate YearOf MonthOf HourOf MinuteOf SecondOf MilliSecondOf
####### HourOf
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
hour := hourof(strtodatetime('2011-08-08 11:22:06'));
return hour; // 输出: 11
参考TDateTime DecodeDate YearOf MonthOf DayOf MinuteOf SecondOf MilliSecondOf
####### MinuteOf
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
minute := minuteof(strtodatetime('2011-08-08 11:22:06'));
return minute; // 输出: 22
参考TDateTime DecodeDate YearOf MonthOf DayOf HourOf SecondOf MilliSecondOf
####### SecondOf
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
second := secondof(strtodatetime('2011-08-08 11:22:06'));
return second; // 输出: 6
参考TDateTime DecodeDate YearOf MonthOf DayOf HourOf MinuteOf MilliSecondOf
####### MilliSecondOf
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
millisecond := Millisecondof(StrToDateTime('2011-08-08 11:22:06.990'));
return millisecond; // 输出: 990
参考TDateTime DecodeDate YearOf MonthOf DayOf HourOf MinuteOf SecondOf
起始结束函数
####### 内容
- StartOfTheYear
- EndOfTheYear
- StartOfAYear
- EndOfAYear
- StartOfTheMonth
- EndOfTheMonth
- StartOfAMonth
- EndOfAMonth
- StartOfTheWeek
- EndOfTheWeek
- StartOfAWeek
- EndOfAWeek
- StartOfTheDay
- EndOfTheDay
- StartOfADay
- EndOfADay
- StartOfTheHalfYear
- StartOfTheQuarter
- EndOfTheQuarter
- EndOfTheHalfYear
####### StartOfTheYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
dTime := StartOfTheYear(StrToDateTime('2011-08-08 11:22:06.990'));
return dateTimeToStr(dTime); // 输出: 2011-01-01
参考TDateTime EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### EndOfTheYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := EndOfTheYear(StrToDateTime('2011-08-08 11:22:06.990'));
return dateTimeToStr(year); // 输出: 2011-12-31 23:59:59
参考TDateTime StartOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### StartOfAYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := StartOfAYear(2011);
return datetimetostr(year); // 输出: 2011-01-01
参考TDateTime StartOfTheYear EndOfTheYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### EndOfAYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := EndOfAYear(2011);
return datetimetostr(year); // 输出: 2011-12-31 23:59:59
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### StartOfTheMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := StartOfTheMonth(strtodatetime('2011-08-08 12:48:22.990'));
return datetimetostr(year); // 输出: 2011-08-01
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### EndOfTheMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := EndOfTheMonth(strtodatetime('2011-08-08 12:48:22.990'));
return DatetimeToStr(year); // 输出: 2011-08-31 23:59:59
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### StartOfAMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
tdate := StartOfAMonth(2011, 08);
return dateTimeToStr(tdate); // 输出: 2011-08-01
参考TDateTime
####### EndOfAMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
Ttime := EndOfAMonth(2011, 08);
return datetimetostr(Ttime); // 输出: 2011-08-31 23:59:59
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### StartOfTheWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := StartOfTheWeek(strtodatetime('2011-08-07'));
return datetimetostr(year); // 输出: 2011-08-01
// 其中2011-08-07是星期天,2011-08-01是星期一
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### EndOfTheWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := EndOfTheWeek(strtodatetime('2011-08-01'));
return datetimetostr(year); // 输出: 2011-08-07 23:59:59
// 其中2011-08-01是星期一,输出结果2011-08-07是星期天
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### StartOfAWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
// 取当年的第一个完整周
year := StartOfAWeek(2011, 1, 1);
return datetimetostr(year); // 输出: 2011-01-03
范例二:
year := StartOfAWeek(2011, 2, 1);
return datetimetostr(year); // 输出:2011-01-10
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### EndOfAWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
year := EndOfAWeek(2011, 1, 7);
return datetimetostr(year); // 输出: 2011-01-09 23:59:59
范例二:
year := EndOfAWeek (2011, 2, 7);
return datetimetostr(year); // 输出:2011-01-16 23:59:59
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek StartOfTheDay EndOfTheDay StartOfADay EndOfADay
####### StartOfTheDay
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := StartOfTheDay(strtodatetime('2011-08-08 23:59:59'));
return datetimetostr(year); // 输出: 2011-08-08
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek EndOfTheDay StartOfADay EndOfADay
####### EndOfTheDay
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := EndOfTheDay(strtodatetime('2011-08-08 01:01:10'));
return datetimetostr(year); // 输出: 2011-08-08 23:59:59
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay StartOfADay EndOfADay
####### StartOfADay
范例
year := StartofADay(2011, 8, 8);
return datetimetostr(year); // 输出: 2011-08-08
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay EndOfADay
####### EndOfADay
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
year := EndOfADay(2015, 1, 5);
return datetimetostr(year); // 输出: 2015-01-05 23:59:59
参考TDateTime StartOfTheYear EndOfTheYear StartOfAYear EndOfAYear StartOfTheMonth EndOfTheMonth StartOfAMonth EndOfAMonth StartOfTheWeek EndOfTheWeek StartOfAWeek EndOfAWeek StartOfTheDay EndOfTheDay StartOfADay
####### StartOfTheHalfYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
EndT := 40599; // 40559表示2011年1月16号
return StartOfTheHalfYear(EndT);
// 结果:40544 //40544表示2011年1月1号
####### StartOfTheQuarter
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
EndT := 40540; // 40540表示2010年12月28日
return StartOfTheQuarter (EndT);
// 结果:40452 //40452表示2010年10月1号
####### EndOfTheQuarter
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
EndT := 40540; // 40540表示2010年12月28日
return EndOfTheQuarter (EndT);
// 结果:40543 //40543表示2010年12月31号
####### EndOfTheHalfYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
EndT := 40540; // 40540表示2010年12月28日
return EndOfTheHalfYear (EndT);
// 结果:40543 //40543表示2010年12月31号
关系函数
####### 内容
- HourOfTheYear
- HourOfTheMonth
- MonthOfTheYear
- MilliSecondOfTheYear
- WeekOfTheYear
- WeekOfTheMonth
- MinuteOfTheYear
- SecondOfTheYear
- DayOfTheYear
- DayOfTheMonth
- SecondOfTheMinute
- HourOfTheWeek
- SecondOfTheMonth
- DayOfTheWeek
- MinuteOfTheDay
- MilliSecondOfTheSecond
- SecondOfTheWeek
- MinuteOfTheMonth
- MinuteOfTheHour
- MinuteOfTheWeek
- MilliSecondOfTheDay
- MilliSecondOfTheMonth
- HourOfTheDay
- MilliSecondOfTheHour
- SecondOfTheHour
- MilliSecondofTheMinute
- SecondOfTheDay
- MilliSecondOfTheWeek
####### HourOfTheYear
范例
hour := HourOfTheYear(strtodatetime('2011-01-03 10:00:00'));
return hour; // 输出: 58
参考TDateTime HourOf MonthOfTheYear WeekOfTheYear DayOfTheYear MinuteOfTheYear SecondOfTheYear MilliSecondOfTheYear
####### HourOfTheMonth
范例
hour := HourOfTheMonth(strtodatetime('2011-01-22 10:00:00'));
return hour; // 输出: 514
参考TDateTime HourOf WeekOfTheMonth DayOfTheMonth MinuteOfTheMonth SecondOfTheMonth MilliSecondOfTheMonth
####### MonthOfTheYear
范例
month := MonthOfTheYear(strtodate('2011-08-08'));
return month; // 输出: 8
参考TDateTime MonthOf WeekOfTheYear DayOfTheYear HourOfTheYear MinuteOfTheYear SecondOfTheYear MilliSecondOfTheYear
####### MilliSecondOfTheYear
范例
millisecond := MilliSecondOfTheYear(strtodatetime('2011-01-03'));
return millisecond; // 输出: 172800000
参考TDateTime MilliSecondOf MonthOfTheYear WeekOfTheYear DayOfTheYear HourOfTheYear MinuteOfTheYear SecondOfTheYear
####### WeekOfTheYear
范例
week := WeekOfTheYear(strtodate('2011-01-03'));
return week; // 输出: 1
参考TDateTime MonthOfTheYear DayOfTheYear HourOfTheYear MinuteOfTheYear SecondOfTheYear MilliSecondOfTheYear
####### WeekOfTheMonth
定义1:WeekOfTheMonth(AValue: TDateTime): Integer;
说明:返回由参数AValue指定的时间是处于当月的第几个周。
注意:使用了ISO8601标准,这意味着可能指定的时间所处的周不属于当前月份,那么返回的将是相对与其他月份的周数。如果当月1号是周四及周四之前,则本周会纳入本月,即本周是本月的第一周,如果当月1号是周四之后,比如是周五,则还属于上月的周期内,即为上月的最后一周。
参数:
- AValue:TDateTime类型,日期时间
- AYear:整数,年,返回值
- AMonth:整数,月,返回值
返回:整数,值域是[1,6]
范例:
month := weekOfTheMonth(strtodatetime('2011-01-22'));
return month; // 输出: 3
定义2:WeekOfTheMonth(AValue: TDateTime; var AYear, AMonth: Integer): Integer;
说明:返回由参数AValue指定的时间是处于当月的第几个周。
注意:使用了ISO8601标准,这意味着可能指定的时间所处的周不属于当前月份,那么返回的将是相对与其他月份的周数,通过参数Ayear,Amonth将所属的年份和月份返回
参数:
- AValue:TDateTime类型,日期时间
- AYear:整数,年,返回值
- AMonth:整数,月,返回值
返回:整数,值域是[1,6]
范例:
week := WeekOfTheMonth(strtodatetime('2011-01-22'), 2011, 1);
return week; // 输出: 3
参考:TDateTime,DayOfTheMonth,HourOfTheMonth,MinuteOfTheMonth,SecondOfTheMonth,MilliSecondOfTheMonth
####### MinuteOfTheYear
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
minute := MinuteOfTheYear(strtodatetime('2011-01-03 10:00:00'));
return minute; // 输出: 3480
参考TDateTime MinuteOf MonthOfTheYear WeekOfTheYear DayOfTheYear HourOfTheYear SecondOfTheYear MilliSecondOfTheYear
####### SecondOfTheYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
second := SecondOfTheYear(strtodatetime('2011-01-03'));
return second; // 输出: 208800
参考TDateTime SecondOf MonthOfTheYear WeekOfTheYear DayOfTheYear HourOfTheYear MinuteOfTheYear MilliSecondOfTheYear
####### DayOfTheYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
d := DayOfTheYear(strtodate('2011-01-03'));
return d; // 输出: 3
参考TDateTime DayOf MonthOfTheYear WeekOfTheYear HourOfTheYear MinuteOfTheYear SecondOfTheYear MilliSecondOfTheYear
####### DayOfTheMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
day := DayOfTheMonth(strtodatetime('2011-01-22'));
return day; // 输出: 22
参考TDateTime DayOf WeekOfTheMonth HourOfTheMonth MinuteOfTheMonth SecondOfTheMonth MilliSecondOfTheMonth
####### SecondOfTheMinute
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
second := SecondOfTheMinute(strtodatetime('2011-01-05 01:30:01'));
return second; // 输出: 1
参考TDateTime SecondOf MilliSecondofTheMinute MilliSecondOfTheSecond
####### HourOfTheWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
hour := HourOfTheWeek(strtodatetime('2011-01-05 10:00:00'));
return hour; // 输出: 58
参考TDateTime HourOf DayOfTheWeek MinuteOfTheWeek SecondOfTheWeek MilliSecondOfTheWeek
####### SecondOfTheMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
second := SecondOfTheMonth(strtodatetime('2011-01-22 10:00:00'));
return second; // 输出: 1850400
参考TDateTime SecondOf WeekOfTheMonth DayOfTheMonth HourOfTheMonth MinuteOfTheMonth MilliSecondOfTheMonth
####### DayOfTheWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
Dayofweek := DayOfTheWeek(strtodatetime('2011-01-03'));
return dayofweek;
// 输出: 1
参考TDateTime DayOf HourOfTheWeek MinuteOfTheWeek SecondOfTheWeek MilliSecondOfTheWeek
####### MinuteOfTheDay
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
minute := MinuteOfTheDay(strtodatetime('2011-01-05 01:22:22'));
return minute; // 输出: 82
参考TDateTime MinuteOf HourOfTheDay SecondOfTheDay MilliSecondOfTheDay
####### MilliSecondOfTheSecond
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
millisecond := MilliSecondOfTheSecond(strtodatetime('2011-01-05 01:30:01.990'));
return millisecond; // 输出:990
参考TDateTime MilliSecondOf MilliSecondofTheMinute
####### SecondOfTheWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
second := SecondOfTheWeek(strtodatetime('2011-01-05 10:00:00'));
return second; // 输出: 208800
参考TDateTime SecondOf DayOfTheWeek HourOfTheWeek MinuteOfTheWeek MilliSecondOfTheWeek
####### MinuteOfTheMonth
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
minute := MinuteOfTheMonth(strtodatetime('2011-01-22 10:00:00'));
return minute; // 输出: 30840
参考TDateTime MinuteOf WeekOfTheMonth DayOfTheMonth HourOfTheMonth SecondOfTheMonth MilliSecondOfTheMonth
####### MinuteOfTheHour
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
minute := MinuteOfTheHour(strtodatetime('2011-01-05 01:30:01'));
return minute; // 输出: 30
参考TDateTime MinuteOf MinuteOfTheHour SecondOfTheHour MilliSecondOfTheHour
####### MinuteOfTheWeek
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
minute := MinuteOfTheWeek(strtodatetime('2011-01-05 10:00:00'));
return minute; // 输出: 3480
参考TDateTime MinuteOf DayOfTheWeek HourOfTheWeek SecondOfTheWeek MilliSecondOfTheWeek
####### MilliSecondOfTheDay
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
millisecond := MilliSecondOfTheDay(strtodatetime('2011-01-05 01:30:01'));
return millisecond; // 输出: 5401000
参考TDateTime MilliSecondOf HourOfTheDay MinuteOfTheDay SecondOfTheDay
####### MilliSecondOfTheMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
millisecond := MilliSecondOfTheMonth(strtodatetime('2011-01-22 10:00:00'));
return millisecond; // 输出: 1850400000
参考TDateTime MilliSecondOf WeekOfTheMonth DayOfTheMonth HourOfTheMonth MinuteOfTheMonth SecondOfTheMonth
####### HourOfTheDay
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
hour := HourOfTheDay(strtodatetime('2011-01-05 23:22:22'));
return hour; // 输出: 23
参考TDateTime HourOf MinuteOfTheDay SecondOfTheDay MilliSecondOfTheDay
####### MilliSecondOfTheHour
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
millisecond := MilliSecondOfTheHour(strtodatetime('2011-01-05 01:30:01'));
return millisecond; // 输出: 1801000
参考TDateTime MilliSecondOf MinuteOfTheHour SecondOfTheHour
####### SecondOfTheHour
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
second := SecondOfTheHour(strtodatetime('2011-01-05 01:30:01'));
return second; // 输出: 1801
参考TDateTime SecondOf MinuteOfTheHour MilliSecondOfTheHour
####### MilliSecondofTheMinute
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
millisecond := MilliSecondofTheMinute(strtodatetime('2011-01-05 01:30:01'));
return millisecond; // 输出: 1000
参考TDateTime SecondOf MilliSecondOf MilliSecondOfTheSecond
####### SecondOfTheDay
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
second := SecondOfTheDay(strtodatetime('2011-01-05 01:30:01'));
return second; // 输出: 5401
参考TDateTime SecondOf HourOfTheDay MinuteOfTheDay MilliSecondOfTheDay
####### MilliSecondOfTheWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
millisecond := MilliSecondOfTheWeek(strtodatetime('2011-01-05 10:00:00'));
return millisecond; // 输出: 208800000
参考TDateTime MilliSecondOf DayOfTheWeek HourOfTheWeek MinuteOfTheWeek SecondOfTheWeek
范围判定函数
####### 内容
- WithinPastYears
- WithinPastMonths
- WithinPastWeeks
- WithinPastDays
- WithinPastHours
- WithinPastMinutes
- WithinPastSeconds
- WithinPastMilliSeconds
####### WithinPastYears
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
// 2010年1月5日至2013年1月4日之间,不足3年,因此,判断为2年内
flag := WithinPastYears(strtodatetime('2010-01-05'), strtodatetime('2013-01-04'), 2);
return flag; // 输出: 1
范例二:
// //2010年1月5日至2013年1月5日之间,相隔 3年,因此,判断为不在2年内
flag := WithinPastYears(strtodatetime('2010-01-05'), strtodatetime('2013-01-05'), 2);
return flag; // 输出: 0
参考TDateTime WithinPastMonths WithinPastWeeks WithinPastDays WithinPastHours WithinPastSeconds WithinPastMinutes WithinPastMilliSeconds
####### WithinPastMonths
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
// 2011年1月5日到2011年7月6日的天数是182,而天数必须大于182.62(6*30.4375),才能达到6个月,所以,1月5日还属于7月6日前推5个月范围内。
flag := WithinPastMonths(strtodatetime('2011-01-05'), strtodatetime('2011-07-06'), 5);
return flag; // 输出: 1
范例二:
flag := WithinPastMonths(strtodatetime('2011-01-05'), strtodatetime('2011-07-07'), 5);
return flag; // 输出: 0
参考TDateTime WithinPastYears WithinPastWeeks WithinPastDays WithinPastHours WithinPastSeconds WithinPastMinutes WithinPastMilliSeconds
####### WithinPastWeeks
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
// 2011年1月1日至2011年1月28日之间的天数为27天,不足28天(4*7),所以仍在3周内
flag := WithinPastWeeks(strtodatetime('2011-01-01'), strtodatetime('2011-01-28'), 3);
return flag; // 输出: 1
范例二:
// 2011年1月1日至2011年1月28日之间的天数为27天,不足28天(4*7),所以仍在3周内
flag := WithinPastWeeks(strtodatetime('2011-01-01'), strtodatetime('2011-01-29'), 3);
return flag; // 输出: 0
参考TDateTime WithinPastYears WithinPastMonths WithinPastDays WithinPastHours WithinPastSeconds WithinPastMinutes WithinPastMilliSeconds
####### WithinPastDays
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
flag := WithinPastDays(strtodate('2011-01-01'), strtodate('2011-01-11'), 10);
return flag; // 输出: 1
范例二:
flag := WithinPastDays(strtodate('2011-01-01'), strtodate('2011-01-12'), 10);
return flag; // 输出: 0
参考TDateTime WithinPastYears WithinPastMonths WithinPastWeeks WithinPastHours WithinPastSeconds WithinPastMinutes WithinPastMilliSeconds
####### WithinPastHours
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
// 不足11个小时
flag := WithinPastHours(strtodatetime('2011-01-01 00:00:00'), strtodatetime('2011-01-01 10:30:00'), 10);
return flag; // 输出: 1
范例二:
flag := WithinPastHours(strtodatetime('2011-01-01 00:00:00'), strtodatetime('2011-01-01 11:00:00'), 10);
return flag; // 输出: 0
参考TDateTime WithinPastYears WithinPastMonths WithinPastWeeks WithinPastDays WithinPastSeconds WithinPastMinutes WithinPastMilliSeconds
####### WithinPastMinutes
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
flag := WithinPastMinutes(strtodatetime('2011-01-01 10:00:00'), strtodatetime('2011-01-01 10:10:00'), 10);
return flag; // 输出: 1
flag := WithinPastMinutes(strtodatetime('2011-01-01 10:00:00'), strtodatetime('2011-01-01 10:11:00'), 10);
return flag; // 输出: 0
参考TDateTime WithinPastYears WithinPastMonths WithinPastWeeks WithinPastDays WithinPastHours WithinPastSeconds WithinPastMilliSeconds
####### WithinPastSeconds
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
flag := WithinPastSeconds(strtodatetime('2011-01-01 10:00:00'), strtodatetime('2011-01-01 10:00:10'), 10);
return flag; // 输出: 1
范例二:
flag := WithinPastSeconds(strtodatetime('2011-01-01 10:00:00'), strtodatetime('2011-01-01 10:00:11'), 10);
return flag; // 输出: 0
参考TDateTime WithinPastYears WithinPastMonths WithinPastWeeks WithinPastDays WithinPastHours WithinPastMinutes WithinPastMilliSeconds
####### WithinPastMilliSeconds
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
ANow := strtodatetime('2011-01-01 10:00:00.100');
AThen := strtodatetime('2011-01-01 10:00:00.200');
flag := WithinPastMilliSeconds(ANow, AThen , 100);
return flag; // 输出: 1
参考TDateTime WithinPastYears WithinPastMonths WithinPastWeeks WithinPastDays WithinPastHours WithinPastSeconds WithinPastMinutes
范围获得函数
####### 内容
- YearsBetween
- MonthsBetween
- WeeksBetween
- DaysBetween
- HoursBetween
- MinutesBetween
- SecondsBetween
- MilliSecondsBetween
####### YearsBetween
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
years := YearsBetween(strtodatetime('2009-01-01 00:00:00'), strtodatetime('2011-01-01 23:59:59.999'));
return years; // 输出: 2
参考TDateTime MonthsBetween WeeksBetween DaysBetween HoursBetween MinutesBetween SecondsBetween MilliSecondsBetween
####### MonthsBetween
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
months := MonthsBetween(strtodatetime('2011-05-01'), strtodatetime('2011-08-01'));
return months; // 输出: 3
参考TDateTime YearsBetween WeeksBetween DaysBetween HoursBetween MinutesBetween SecondsBetween MilliSecondsBetween
####### WeeksBetween
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
weeks := WeeksBetween(strtodatetime('2011-05-01'), strtodatetime('2011-08-01'));
return weeks; // 输出: 13
参考TDateTime YearsBetween MonthsBetween DaysBetween HoursBetween MinutesBetween SecondsBetween MilliSecondsBetween
####### DaysBetween
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
days := DaysBetween(strtodate('2011-05-01'), strtodate('2011-08-01'));
return days; // 输出: 92
范例二:
// 不足完整的一天:39815.04167-39814.08333=0.95834
// 2009-01-01 02:00:00:日期时间为39814.08333
// 2009-01-02 01:00:00:日期时间为39815.04167
days := DaysBetween(strtodatetime('2009-01-01 02:00:00'), strtodatetime('2009-01-02 01:00:00'));
return days; // 输出: 0
参考TDateTime YearsBetween MonthsBetween WeeksBetween HoursBetween MinutesBetween SecondsBetween MilliSecondsBetween
####### HoursBetween
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
Hours := HoursBetween(strtodatetime('2011-08-01 00:00:00'), strtodatetime('2011-08-01 12:00:00'));
return hours; // 输出: 12
参考TDateTime YearsBetween MonthsBetween WeeksBetween DaysBetween MinutesBetween SecondsBetween MilliSecondsBetween
####### MinutesBetween
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
minutes := MinutesBetween(strtodatetime('2011-08-01 00:00:00'), strtodatetime('2011-08-01 12:00:00'));
return minutes; // 输出: 720
参考TDateTime YearsBetween MonthsBetween WeeksBetween DaysBetween HoursBetween SecondsBetween MilliSecondsBetween
####### SecondsBetween
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
seconds := SecondsBetween(strtodatetime('2011-08-01 00:00:00'), strtodatetime('2011-08-01 12:00:00'));
return seconds; // 输出: 43200
参考TDateTime YearsBetween MonthsBetween WeeksBetween DaysBetween HoursBetween MinutesBetween MilliSecondsBetween
####### MilliSecondsBetween
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
BegT := strtodatetime('2011-08-01 00:00:00');
EndT := strtodatetime('2011-08-01 12:00:00');
milliseconds := MilliSecondsBetween(BegT, EndT);
return milliseconds; // 输出: 43200000
参考TDateTime YearsBetween MonthsBetween WeeksBetween DaysBetween HoursBetween MinutesBetween SecondsBetween
范围生成函数
####### 内容
- YearSpan
- MonthSpan
- WeekSpan
- DaySpan
- HourSpan
- MinuteSpan
- SecondSpan
- MilliSecondSpan
####### YearSpan
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
years := YearSpan(strtodatetime('2010-08-01 00:00:00'), strtodatetime('2012-08-01 12:00:00'));
return years; // 输出: 2.00274
参考TDateTime MonthSpan WeekSpan DaySpan HourSpan MinuteSpan SecondSpan MilliSecondSpan
####### MonthSpan
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
months := MonthSpan(strtodatetime('2010-08-01 00:00:00'), strtodatetime('2012-08-01 12:00:00'));
return months; // 输出: 24.03
参考TDateTime YearSpan WeekSpan DaySpan HourSpan MinuteSpan SecondSpan MilliSecondSpan
####### WeekSpan
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
BegT := strtodatetime('2010-08-01 00:00:00');
EndT := strtodatetime ('2012-08-01 12:00:00');
weeks := WeekSpan(BegT, EndT);
return weeks; // 输出: 104.5
参考TDateTime YearSpan MonthSpan DaySpan HourSpan MinuteSpan SecondSpan MilliSecondSpan
####### DaySpan
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
BegT := strtodatetime('2010-08-01 00:00:00');
EndT := strtodatetime('2012-08-01 12:00:00');
days := DaySpan(BegT, EndT);
return days; // 输出: 731.5
参考TDateTime YearSpan MonthSpan WeekSpan HourSpan MinuteSpan SecondSpan MilliSecondSpan
####### HourSpan
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
hours := HourSpan(strtodatetime('2010-08-01 00:00:00'), strtodatetime('2012-08-01 12:00:00'));
return hours; // 输出: 17556
参考TDateTime YearSpan MonthSpan WeekSpan DaySpan MinuteSpan SecondSpan MilliSecondSpan
####### MinuteSpan
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
BegT := strtodatetime('2010-08-01 00:00:00');
EndT := strtodatetime('2012-08-01 12:00:00');
minutes := MinuteSpan(BegT, EndT);
return minutes; // 输出: 1053360
参考TDateTime YearSpan MonthSpan WeekSpan DaySpan HourSpan SecondSpan MilliSecondSpan
####### SecondSpan
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
BegT := strtodatetime('2010-08-01 00:00:00');
EndT := strtodatetime('2012-08-01 12:00:00');
seconds := SecondSpan(BegT, EndT);
return seconds; // 输出: 63201600
参考TDateTime YearSpan MonthSpan WeekSpan DaySpan HourSpan MinuteSpan MilliSecondSpan
####### MilliSecondSpan
范例
BegT := strtodatetime('2010-08-01 00:00:00');
EndT := strtodatetime('2012-08-01 12:00:00');
milliseconds := SecondSpan(BegT, EndT);
return milliseconds; // 输出: 63201600000
参考TDateTime YearSpan MonthSpan WeekSpan DaySpan HourSpan MinuteSpan SecondSpan
时间推移函数
####### 内容
- IncYear
- IncHalfYear
- IncQuarter
- IncMonth
- IncWeek
- IncDay
- IncHour
- IncMinute
- IncSecond
- IncMilliSecond
####### IncYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
incyears := IncYear(strtodatetime('2010-08-01'), 10);
return datetostr(incyears); // 输出: 2020-08-01
参考TDateTime
####### IncHalfYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
Avalue := 40179; // 40179表示2010年1月1号
Number := 2;
return IncHalfYear(AValue, Number);
// 结果:40544 //40544表示2011年1月1号
####### IncQuarter
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
Avalue := 40179; // 40179表示2010年1月1号
Number := 2;
return IncQuarter(AValue, Number);
// 结果:40360 //40360表示2010年7月1号
####### IncMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
incmonths := IncMonth(strtodatetime('2010-08-01'), 2);
return datetostr(incmonths); // 输出: 2010-10-01
参考TDateTime
####### IncWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
incweeks := IncWeek(strtodatetime('2010-08-01'), 1);
return datetostr(incweeks); // 输出: 2010-08-08
参考TDateTime
####### IncDay
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
incdays := IncDay(strtodatetime('2010-08-01'), 10);
return datetostr(incdays); // 输出: 2010-08-11
参考TDateTime
####### IncHour
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
inchours := IncHour(strtodatetime('2010-08-01 00:01:01'), 10);
return datetimetostr(inchours); // 输出: 2010-08-01 10:01:01
参考TDateTime
####### IncMinute
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
incminutes := IncMinute(strtodatetime('2010-08-01 00:01:01'), 50);
return datetimetostr(incminutes); // 输出: 2010-08-01 00:51:01
参考TDateTime
####### IncSecond
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
incseconds := IncSecond(strtodatetime('2010-08-01 00:01:01'), 50);
return datetimetostr(incseconds); // 输出: 2010-08-01 00:01:51
参考TDateTime
####### IncMilliSecond
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
incmilliseconds := IncMilliSecond(strtodatetime('2010-08-01 00:01:01.950'), 50);
return datetimetostr(incmilliseconds); // 输出: 2010-08-01 00:01:02
参考TDateTime
组合、分解日期函数
####### 内容
- EncodeDateTime
- DecodeDateTime
- EncodeDateWeek
- DecodeDateWeek
- DecodeDateDay
- EncodeDateMonthWeek
- DecodeDateMonthWeek
- TryEncodeDateTime
- TryEncodeDateWeek
- TryEncodeDateDay
- TryEncodeDateMonthWeek
####### EncodeDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
timeset := EncodeDateTime(2011, 08, 08, 09, 32, 45, 990);
return datetimetostr(timeset); // 输出: 2011-08-08 09:32:45
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf DecodeDateTime EncodeDateWeek DecodeDateWeek DecodeDateDay EncodeDateMonthWeek DecodeDateMonthWeek
####### DecodeDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
EndT := strtodatetime('2011-08-08 12:09:10.990');
DecodeDateTime(EndT, year, month, day, hour, minute, second, millisecond);
return array(year, month, day, hour, minute, second, millisecond);
// 输出:array(2011,8,8,12,9,10,990)
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf EncodeDateTime EncodeDateWeek DecodeDateWeek DecodeDateDay EncodeDateMonthWeek DecodeDateMonthWeek
####### EncodeDateWeek
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
// 一个自然周至少要有4天属于该年的日期,这一周才属于这年。
// 1月1日和1月2日所属周只有2天处于2011年,所以,这周属于2010年,2011年的第一周从2011年1月3日算起
week := EncodeDateWeek(2011, 1, 1);
return datetostr(week);
// 输出: 2011-01-03
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf EncodeDateTime DecodeDateTime DecodeDateWeek DecodeDateDay EncodeDateMonthWeek DecodeDateMonthWeek
####### DecodeDateWeek
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
DecodeDateWeek(strtodatetime('2011-08-08'), year, weekofyear, dayofweek);
return array( year, weekofyear, dayofweek);
// 输出: array(2011, 32,1)
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf EncodeDateTime DecodeDateTime EncodeDateWeek DecodeDateDay EncodeDateMonthWeek DecodeDateMonthWeek
####### DecodeDateDay
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
DecodeDateDay(strtodatetime('2011-08-08'), year, dayofyear);
return array(year, dayofyear);
// 输出: array(2011,220)
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf EncodeDateTime DecodeDateTime EncodeDateWeek DecodeDateWeek EncodeDateMonthWeek DecodeDateMonthWeek
####### EncodeDateMonthWeek
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
monthweek := EncodeDateMonthWeek(2011, 8, 2, 1);
return datetimetostr(monthweek); // 输出: 2011-08-08
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf EncodeDateTime DecodeDateTime EncodeDateWeek DecodeDateWeek DecodeDateDay DecodeDateMonthWeek
####### DecodeDateMonthWeek
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
DecodeDateMonthWeek(strtoDatetime("2011-08-10"), year, month, weekofMonth, dayOfWeek1);
return array(year, month, weekofMonth, dayOfWeek1); // 输出: array(2011,8,2,3)
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf EncodeDateTime DecodeDateTime EncodeDateWeek DecodeDateWeek DecodeDateDay EncodeDateMonthWeek
####### TryEncodeDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
Flag := TryEncodeDateTime(2011, 8, 10, 10, 01, 01, 999, Atime);
return array(flag, datetimetostr(Atime)); // 输出: array(1,'2011-08-10 10:01:01')
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf TryEncodeDateWeek TryEncodeDateDay TryEncodeDateMonthWeek
####### TryEncodeDateWeek
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
Flag := TryEncodeDateWeek(2011, 1, Atime, 1);
return array(flag, datetimetostr(Atime)); // 输出: array(1,'2011-01-03')
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf TryEncodeDateTime TryEncodeDateDay TryEncodeDateMonthWeek
####### TryEncodeDateDay
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
Flag := TryEncodeDateDay(2011, 1, Atime);
return array(flag, datetimetostr(Atime)); // 输出: array(1,'2011-01-01')
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf TryEncodeDateTime TryEncodeDateWeek TryEncodeDateMonthWeek
####### TryEncodeDateMonthWeek
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
Flag := TryEncodeDateMonthWeek(2011, 1, 1, 1, Atime);
return array(flag, datetimetostr(Atime)); // 输出: array(1,'2011-01-03')
参考TDateTime YearOf MonthOf DayOf HourOf MinuteOf SecondOf MilliSecondOf TryEncodeDateTime TryEncodeDateWeek TryEncodeDateDay
日期重组函数
####### 内容
- RecodeYear
- RecodeMonth
- RecodeDay
- RecodeHour
- RecodeMinute
- RecodeSecond
- RecodeMilliSecond
- RecodeDate
- RecodeTime
- RecodeDateTime
- TryRecodeDateTime
- CompareDateTime
- SameDateTime
- CompareDate
- SameDate
- CompareTime
- SameTime
- NthDayOfWeek
- DecodeDayOfWeekInMonth
- EncodeDayOfWeekInMonth
- TryEncodeDayOfWeekInMonth
####### RecodeYear
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
newTime := RecodeYear(strtoDatetime("2010-08-01"), 2009);
return datetimetostr(newTime); // 输出: 2009-08-01
范例二:
// 用try...except...end语句进行异常处理,如果无法替换成有效的日期,则把NewTime设置为0.
try
newTime := RecodeYear(strtoDatetime("2012-02-29"), 2013);
except
newTime := 0;
end;
return newTime; // 输出: 0
参考TDateTime
####### RecodeMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
try
newTime := RecodeMonth(strtodatetime("2011-08-10"), 10);
newTime := datetimetostr(newTime);
except
newTime := 0;
end;
return newTime; // 输出: 2011-10-10
范例二:
try
newTime := RecodeMonth(strtodatetime("2013-3-31"), 4);
newTime := datetimetostr(newTime);
except
newTime := 0;
end;
return newTime; // 输出: 0
参考TDateTime
####### RecodeDay
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
try
newTime := RecodeDay(strtodatetime("2011-08-10"), 1);
newTime := datetostr(newTime);
except
newTime := 0;
end;
return newTime; // 输出: 2011-08-01
范例二:
try
newTime := RecodeDay(strtodatetime("2011-02-28"), 31);
newTime := datetostr(newTime);
except
newTime := 0;
end;
return newTime; // 输出: 0
参考TDateTime
####### RecodeHour
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
newTime := RecodeHour(strtodatetime("2011-08-10 12:12:12"), 1);
return datetimetostr(newTime); // 输出: 2011-08-10 01:12:12
参考TDateTime
####### RecodeMinute
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
newTime := RecodeMinute (strtodatetime("2011-08-10 12:12:12"), 9);
return datetimetostr(newTime); // 输出: 2011-08-10 12:09:12
参考TDateTime
####### RecodeSecond
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
newTime := RecodeSecond(strtodatetime("2011-08-10 12:12:12"), 9);
return datetimetostr(newTime); // 输出: 2011-08-10 12:12:09
参考TDateTime
####### RecodeMilliSecond
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
newTime := RecodeMilliSecond(strtodatetime("2011-08-10 12:12:12.999"), 100);
return MilliSecondOf (newTime); // 输出: 100
参考TDateTime
####### RecodeDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
newTime := RecodeDate(strtodatetime("2011-08-10 12:12:12"), 2010, 8, 9);
return datetimetostr(newTime); // 输出: 2010-08-09 12:12:12
参考TDateTime
####### RecodeTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
newTime := RecodeTime(strtodatetime("2011-08-10 12:12:12.999"), 10, 8, 9, 100);
return datetimetostr(newTime); // 输出: 2011-08-10 10:08:09
参考TDateTime
####### RecodeDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
newTime := RecodeDateTime(strtodatetime("2011-08-10 12:12:12.999"), 2010, 8, 10, 10, 8, 9, 100);
return datetimetostr(newTime); // 输出: 2010-08-10 10:08:09
参考TDateTime
####### TryRecodeDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
TryRecodeDateTime(strtodatetime("2011-08-10 12:12:12.999"), 2010, 8, 10, 10, 8, 9, 100, Aresult);
return datetimetostr(Aresult); // 输出: 2010-08-10 10:08:09
参考TDateTime
####### CompareDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
result := CompareDateTime(strtodatetime("2011-08-10"), strtodatetime("2011-08-11"));
return result; // 输出: -1
参考TDateTime
####### SameDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
flag := SameDateTime(strtodatetime("2011-08-10"), strtodatetime("2011-08-11"));
return flag; // 输出: 0
参考TDateTime
####### CompareDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
result := CompareDate(strtodatetime("2011-08-10"), strtodatetime("2011-08-11"));
return result; // 输出: -1
参考TDateTime
####### SameDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
flag := SameDate(strtodatetime("2011-08-1001:00:00"), strtodatetime("2011-08-1002:00:00"));
return flag; // 输出: 1
参考TDateTime
####### CompareTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
result := CompareTime(strtodatetime("2011-08-10 01:00:00"), strtodatetime("2011-08-11 01:00:00"));
return result; // 输出: 0
参考TDateTime
####### SameTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
result := SameTime(strtodatetime("2011-08-10 01:00:00"), strtodatetime("2011-08-11 01:00:00"));
return result; // 输出: 1
参考TDateTime
####### NthDayOfWeek
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
EndT := strtodatetime("2014-01-06");
weekNum := NthDayOfWeek(EndT);
WOFM := WeekOfTheMonth(EndT);
return array(weekNum, WOFM); // 输出: array(1,2)
参考TDateTime
####### DecodeDayOfWeekInMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
EndT := strtodatetime("2011-08-10 12:10:09");
DecodeDayOfWeekInMonth(endt, Ayear, Amonth, ANthDayOfWeek, ADayOfWeek);
return array(Ayear, Amonth, ANthDayOfWeek, ADayOfWeek );
// 输出: array(2011,8,2,3)
参考TDateTime
####### EncodeDayOfWeekInMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
// 2013年10月1日是周二,1日至6日不属于这个月的周,从7日(周一)所属周开始算起
return EncodeDayOfWeekInMonth(2013, 10, 2, 1); // 输出41561('2013-10-14')
参考TDateTime
####### TryEncodeDayOfWeekInMonth
用途:日期时间相关函数。 参数:
返回:处理后的结果值。
范例
TryEncodeDayOfWeekInMonth(2013, 10, 2, 1, newtime);
return datetimetostr(newtime);
// 输出: 2013-10-14
参考TDateTime
日期格式的转换
####### 内容
- DateTimeToJulianDate
- JulianDateToDateTime
- TryJulianDateToDateTime
- DateTimeToModifiedJulianDate
- ModifiedJulianDateToDateTime
- TryModifiedJulianDateToDateTime
- DateTimeToUnix
- UnixToDateTime
- FileDateToDateTime
- DateTimeToFileDate
- ExcelRDate
####### DateTimeToJulianDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return DateTimeToJulianDate(strtodatetime('2014-01-01 10:00:00'));
// 输出2456658.91667
参考TDateTime JulianDateToDateTime TryJulianDateToDateTime DateTimeToModifiedJulianDate ModifiedJulianDateToDateTime TryModifiedJulianDateToDateTime DateTimeToUnix UnixToDateTime
####### JulianDateToDateTime
范例
A := JulianDatetoDateTime(2456658.91667);
return DatetimetoStr(A); // 输出2014-01-01 10:00:00
参考TDateTime DateTimeToJulianDate TryJulianDateToDateTime DateTimeToModifiedJulianDate ModifiedJulianDateToDateTime TryModifiedJulianDateToDateTime DateTimeToUnix UnixToDateTime
####### TryJulianDateToDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
flag := TryJulianDateToDateTime(2456658.91667, T);
if flag then return DatetimetoStr(T);
else return 0;
// 输出2014-01-01 10:00:00
参考TDateTime DateTimeToJulianDate JulianDateToDateTime DateTimeToModifiedJulianDate ModifiedJulianDateToDateTime TryModifiedJulianDateToDateTime DateTimeToUnix UnixToDateTime
####### DateTimeToModifiedJulianDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
a := DateTimeToModifiedJulianDate(strtodatetime('2014-01-01 10:00:00'));
return a; // 输出56658.41667
参考TDateTime DateTimeToJulianDate JulianDateToDateTime TryJulianDateToDateTime ModifiedJulianDateToDateTime TryModifiedJulianDateToDateTime DateTimeToUnix UnixToDateTime
####### ModifiedJulianDateToDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
t := ModifiedJulianDateToDateTime(56658.41667);
return datetimetostr(t); // 输出2014-01-01 10:00:00
参考TDateTime DateTimeToJulianDate DateTimeToUnix JulianDateToDateTime TryJulianDateToDateTime UnixToDateTime DateTimeToModifiedJulianDate TryModifiedJulianDateToDateTime
####### TryModifiedJulianDateToDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
flag := TryModifiedJulianDateToDateTime(56658.41667, t);
if flag then return datetimetostr(t);
else return 0;
// 输出2014-01-01 10:00:00
参考TDateTime DateTimeToJulianDate JulianDateToDateTime TryJulianDateToDateTime DateTimeToModifiedJulianDate ModifiedJulianDateToDateTime DateTimeToUnix UnixToDateTime
####### DateTimeToUnix
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return DateTimeToUnix(strtodatetime('2014-01-01 10:00:00'));
// 输出1388570400
参考TDateTime DateTimeToJulianDate JulianDateToDateTime TryJulianDateToDateTime DateTimeToModifiedJulianDate ModifiedJulianDateToDateTime TryModifiedJulianDateToDateTime UnixToDateTime
####### UnixToDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
T := UnixToDateTime(1388570400);
return datetimetostr(T);
// 输出2014-01-01 10:00:00
参考TDateTime DateTimeToJulianDate JulianDateToDateTime TryJulianDateToDateTime DateTimeToModifiedJulianDate ModifiedJulianDateToDateTime TryModifiedJulianDateToDateTime DateTimeToUnix
####### FileDateToDateTime
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
EndT := FileDateToDateTime(1143033856);
return datetimetostr(EndT);
// 输出:2014-01-01 10:00:00
差异说明依赖运行时操作系统相关API,与DateTimeToFileDate相对。
具体差异表现可参考:FAQ:DateTimeToFileDate
####### DateTimeToFileDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
EndT := strtodatetime('2014-01-01 10:00:00');
FileEndT := DateTimeToFileDate(EndT);
return array(EndT, FileEndT);
// 比较两种日期输出
// 输出:array(41640.41667,1143033856)
差异说明转化的结果依赖运行时操作系统相关API,转换结果会存在差异,但是同一系统中,转换与转回是自恰的。
即,通过DateTimeToFileDate转换后的结果,再通过FileDateToDateTime转回,可以得到最初未转换之前的值。
如:
fdate := DateTimeToFileDate(20240525.1430T);
echo fdate; // windows下返回:1488548800 Linux中返回:1716618600
t := FileDateToDateTime(fdate);
return t; // 都返回20240525.1430T
####### ExcelRDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
RDate := 20101231;
return ExcelRDate(RDate);
// 结果:2010-12-31
宽字节日期格式转换函数
####### 内容
- DateTimeGMTToCookieStrw
- DateTimeGMTToHttpStrw
- DateTimeToInternetStrw
- Datetimetostrw
- TimetoStrw
- DateToStrw
####### DateTimeGMTToCookieStrw
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return DateTimeGMTToCookieStrw(20200723.110633T);
// 输出Thu, 23-Jul-2020 11:06:33 GMT
####### DateTimeGMTToHttpStrw
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return DateTimeGMTToHttpStrw(20200723.110633T);
// 输出Thu, 23 Jul 2020 11:06:33 GMT
####### DateTimeToInternetStrw
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return DateTimeToInternetStrw(20200723.110633T, 0);
// 输出Thu, 23 Jul 2020 11:06:33 +0800
####### Datetimetostrw
范例
return datetimetostrw(20200720.0930T);
// 输出宽字节字符串:2020-07-20 09:30:00
####### TimetoStrw
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
return TimetoStrw(9.5 / 24); // 输出宽字节字符串:09:30:00
return TimetoStrw(20200720.0930T); // 输出宽字节字符串:09:30:00
####### DateToStrw
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
return datetostrw(20200720T); // 输出宽字节字符串 2020-07-20
字符串
内容
- 常用字符串函数
- 判定函数
- 替换以及处理函数
- 字符串数组相关函数
- 重复函数
- 多字节语言支持函数
- 字节函数
- 发音相关函数
- 正则表达式函数
- 正则表达式
- 多语言支持函数
- 文件名以及目录名相关处理函数
- 其它
常用字符串函数
####### 内容
- StrCmp
- Chr
- WideChr
- Str2Array
- Concat
- Array2Str
- Format
- Ord
- SetLength
- CompareText
- Copy
- UpperCase
- LeftBStr
- RightBStr
- MidBStr
- GetFormatLocalCode
- Str
- RightStr
- CompareStr
- LeftStr
- Trim
- SameText
- SetChar
- AppendStr
- GetChar
- LowerCase
- SetFormatLocalCode
- Val
- Pos
- TrimRight
- AnsiFormat
- TrimLeft
- StrToIntDef
- FormatFloat
- StrToCurrDef
- Booltostr2
- StrToFloatDef
- Tostring
- IntToHex
- TryStrToInt
- FloatToStr
- TryStrToFloat
- FormatCurr
- TryStrToCurr
- StrToInt
- BoolToStr
- CurrToStr
- TryStrToBool
- SpaceByNumber
- IsValidIdent
- StrToBool
- StrToFloat
- StrToBoolDef
- IntToStr
- StrToCurr
- AnsiStr2Array
- TryUppercase
- TryLowercase
- SysEncodecryptStr
- Letters
- DecToInt64
- DecToInt64def
- TryDecToInt64
- DecToInt32
- DecToInt32def
- TryDecToInt32
- StrToInt64
- StrToInt64Def
- TryStrToInt64
- StrToInt32
- StrToInt32Def
- TryStrToInt32
- DecToInt
- DecToIntDef
- TryDecToInt
####### StrCmp
用途:字符串相关函数。 参数:
返回:字符串。
范例
a := StrCmp("arr", "arry");
return a; //
// 输出;-1
差异说明返回值的绝对值大小无实际意义,在不同操作系统中,其绝对值大小也表现不一。
比如,对比字符或ASCII码的比较,在Linux中,返回ASCII码相差的值,Windows中只返回-1,0,1等代表大小,但是符号是一致的。
如strcmp(#97,#100);// Windows返回-1,Linux中返回-3。
####### Chr
用途:字符串相关函数。 参数:
返回:字符串。
范例
aValue := Chr(50);
return aValue;
// 输出:字符串'2'
参考Ord
####### WideChr
用途:字符串相关函数。 参数:
返回:字符串。
范例
aValue := WideChr(25105);
return aValue;
// 输出:Unicode字符串L'我'
参考Ord
####### Str2Array
用途:字符串相关函数。 参数:
返回:字符串。
范例
r := Str2Array("SZ000001;SZ000002;SH600000", ";"); // 以分号分隔
return r;
// 输出:array("SZ000001","SZ000002","SH600000")
参考Array2Str
####### Concat
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:
arr := Concat("thank-", "you-", "very-", "much! ");
return arr; // 输出:thank-you-very-much!
范例02:Unicode字符串的合并
s1 := multibytetounicodew('天软', 936);
s2 := Inttostrw(2020);
return concat(s1, s2);
// 输出宽字节字符串:天软2020
####### Array2Str
用途:字符串相关函数。 参数:
返回:字符串。
范例
var arr := array("thank", "you", "very", "much! ");
a := Array2Str(arr, "-");
return a;
// 输出:thank-you-very-much!
参考Str2Array
####### Format
用途:按指定格式输出结果。 参数:
返回:字符串。
范例
1、把两个数字格式化为字符串:Format('First %d, Second %d', n1, n2);
其中n1和n2是两个整数值,第一个占位符由第一个值替代,第二个占位符由第二个值替代,以此类推。
2、Format ('%-8d', n1);
该句把数字n1转换成有长度是8个字符的字符串,并通过填充空白使文本左对齐,左对齐用减号(-)
范例01:(D 和X的使用范例)
// 指定前2个数值转化为十进制数字字符串,第3个整数转化成十六进制字符串,3个数值必须是整数。
// 第2个转化%-5d:由于3只有1位,需要左对齐,则在右边添加4位空格
return Format('%d,%-5d,%X', 4, 3, 12);
// 输出字符串:4,3 ,C
范例02:(E的使用范例)
// .1表示后面的小数位的精度。注意,v必须是一个浮点数,比如1234400.0,如果是1234400则被认为是整数,执行函数报错
return format("%.1E", 1234400.0);
// 输出字符串:1.2E+006
范例03:(F的使用范例)
return format("%.1f", 1234400.56789);
// 输出字符串: 1234400.6
范例04:(G的使用范例)
return format("%G", 1.2E + 006);
// 输出字符串:1200000
范例05:(N的使用范例)
return format("%.1N", 1234400.56789);
// 输出字符串:1,234,400.6
范例06:(M的使用范例)
return format("%.1M", 1234400.56789);
// 输出字符串:¥1,234,400.6
范例七:(参数的索引)
return Format('%2:d,%1:5d,%0:X', 14, 3, 12);
// 输出字符串:12, 3,E
参考SetFormatLocalCode GetFormatLocalCode AnsiFormat
####### Ord
用途:字符串相关函数。 参数:
返回:字符串。
范例
r := Ord("2");
return r; // 输出:50
参考Chr
####### SetLength
用途:字符串相关函数。 参数:
返回:整数。
范例
// 相当于截取了源串S的前NewLength个字符
S := 'thankyou';
SetLength(S, 5);
return S;
// 输出字符串:thank
####### CompareText
用途:字符串相关函数。 参数:
返回:字符串。
范例
return CompareText("SZ000002", "SZ000001"); // 输出:1
return CompareText("SZ000001", "sz000001"); // 输出:0
return CompareText("万科A", "万科A"); // 输出:-65248
参考CompareStr
差异说明返回值的绝对值大小无实际意义,仅符号有效。不同操作系统中,返回的绝对值会存在差异,但是在同一个操作系统中,结果是确定的。
如执行:return CompareText("Tinysoft","tsl");
在Windows下返回-1,在Linux中返回:-10
####### Copy
用途:字符串相关函数。 参数:
返回:字符串。
范例
a := Copy('thank you', 3, 6);
return a; // 输出字符串:ank yo
参考Concat
####### UpperCase
用途:进行大小写转换。 参数:
返回:字符串。
范例
return UpperCase("sz000001");
// 输出:SZ000001
参考LowerCase
####### LeftBStr
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
arr := LeftBStr("i am a student", 4);
return arr; // 输出字符串:i am
####### RightBStr
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
arr := RightBStr("i am a student", 4);
return arr; // 输出:dent
####### MidBStr
范例
arr := midBStr("i am a student", 6, 6);
return arr; // 输出: a stud
####### GetFormatLocalCode
用途:按指定格式输出结果。 参数:无。 返回:字符串。
范例
SetFormatLocalCode(0);
return GetFormatLocalCode(); // 输出:0
参考SetFormatLocalCode Format AnsiFormat
####### Str
用途:字符串相关函数。 参数:
返回:字符串。
范例
Str(114, s);
return s; // 输出:1.14000000000000E+0002
参考Val
####### RightStr
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
return RightStr('abccccdddd', 2);
// 结果:’dd’
####### CompareStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
return CompareStr("万科A", "万科A");
// 输出:-65248
参考CompareText
差异说明返回值的绝对值大小无实际意义,仅符号有效。不同操作系统中,返回的绝对值会存在差异,但是在同一个操作系统中,结果是确定的。
如执行:return CompareStr("Tinysoft","tsl");
在Windows下返回-1,在Linux中返回:-2099710
####### LeftStr
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
return LeftStr('abccccdddd', 2);
// 结果:'ab'
####### Trim
用途:去除字符串首尾空白字符(空格、换行等)。 参数:s(字符串)。 返回:字符串。
范例
return Trim(" Hello! \r\n Tinysoft ");
结果:
Hello!
Tinysoft
参考TrimLeft TrimRight
####### SameText
用途:字符串相关函数。 参数:
返回:字符串。
范例
return SameText("SZ000001", "sz000001"); // 输出: 1
####### SetChar
用途:字符串相关函数。 参数:
返回:字符串。
范例
var arr := "I am a student";
SetChar(arr, 10, 116);
return arr; // 输出: I am a sttdent
####### AppendStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
s := "申万";
AppendStr(s, "采掘");
return s; // 输出:申万采掘
####### GetChar
用途:字符串相关函数。 参数:
返回:字符串。
范例
arr := GetChar("i am a student", 9);
return arr; // 输出: 116
####### LowerCase
用途:进行大小写转换。 参数:
返回:字符串。
范例
return LowerCase("万科A");
// 输出: 万科a
参考UpperCase
####### SetFormatLocalCode
用途:按指定格式输出结果。 参数:
返回:字符串。
范例
SetFormatLocalCode(0);
return GetFormatLocalCode(); // 输出:0
参考GetFormatLocalCode Format AnsiFormat
####### Val
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例一:
Val("1.1424E+0002", v, Code);
return v; // 输出:114.24
范例二:
// 返回错误信息:在转换到第6位字符时不成功。
Val("1.142aE+0002", v, Code);
return array(v, code); // 输出:array(1.142,6)
参考Str
####### Pos
用途:字符串相关函数。 参数:
返回:整数。
范例
a := Pos('a', 'thank you');
return a; // 输出: 3
return Pos('fg', 'adcfgvbhj');
// 结果:4
参考Copy Concat
####### TrimRight
用途:去除字符串末尾空白字符。 参数:s(字符串)。 返回:字符串。
范例
return TrimRight("Hello! \r\n Tinysoft ");
结果:
Hello!
Tinysoft
参考Trim TrimLeft
####### AnsiFormat
参考GetFormatLocalCode SetFormatLocalCode Format
####### TrimLeft
用途:去除字符串开头空白字符。 参数:s(字符串)。 返回:字符串。
范例
return TrimLeft(" Hello! \r\n Tinysoft ");
结果:
Hello!
Tinysoft
参考Trim TrimRight
####### StrToIntDef
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
范例01
return StrToIntDef("12", 1); // 输出: 12
return StrToIntDef("test", 1); // 输出: 1
范例02:十六进制格式字符串的转换
return StrToIntDef("0x12", 1); // 输出:18
// 输出:18
参考StrToInt IntToHex StrToBool IntToStr TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### FormatFloat
用途:按指定格式输出结果。 参数:
返回:字符串。
范例
| 格式串 | 1234 | -1234 | 0.5 | 0 |
|---|---|---|---|---|
| 无 | -1234 | 0.5 | 0 | |
| 0 | 1234 | -1234 | 1 | 0 |
| 0.00 | 1234.00 | -1234.00 | 0.50 | 0.00 |
| #######.## | 1234 | -1234 | .5 | |
| #######,##0.00 | 1,234.00 | 1,234.00 | 0.50 | 0.00 |
| #######,##0.00;(#,##0.00) | 1,234.00 | (1,234.00) | 0.50 | 0.00 |
| #######,##0.00;;Zero | 1,234.00 | -1,234.00 | 0.5 | Zero |
| 0.000E+00 | 1.234E+03 | -1.234E+03 | 5.000E-01 | 0.000E+00 |
| #######.###E-0 | 1.234E3 | -1.234E3 | 5E-1 | 0E0 |
return FormatFloat('0.000E+00', 23224);
// 输出字符串:"2.322E+04"
return FormatFloat('##,###.00', 123);
// 输出字符串:"123.00"
return FormatFloat('00,000.00', 123);
// 输出字符串:"00,123.00"
参考SetFormatLocalCode GetFormatLocalCode
####### StrToCurrDef
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToCurrDef('1321.233', 3);
// 输出:1321.233
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr TryStrToCurr SetFormatLocalCode GetFormatLocalCode
####### Booltostr2
范例
return booltostr2(2 > 1); // 返回’ True’
####### StrToFloatDef
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToFloatDef('a', 2);
// 输出:2
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr SetFormatLocalCode GetFormatLocalCode
####### Tostring
####### IntToHex
用途:字符串相关函数。 参数:
返回:字符串。
范例
return IntToHex(43, 1);
// 输出: 2B(二进制时候为:101011)
参考StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### TryStrToInt
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:转换成功
ret := TryStrToInt("12", value);
if ret then return value;
else return "转换失败!";
// 输出: 12
范例02:转换失败
ret := TryStrToInt("test", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
范例03:十六进制格式字符串的转换
ret := TryStrToInt("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出:18
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### FloatToStr
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
return FloatToStr(23.4);
// 输出字符串:"23.4"
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr SetFormatLocalCode GetFormatLocalCode
####### TryStrToFloat
用途:字符串相关函数。 参数:
返回:字符串。
范例
TryStrToFloat('321.23', s);
return s; // 输出:321.23
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef StrToCurr StrToCurrDef TryStrToCurr SetFormatLocalCode GetFormatLocalCode
####### FormatCurr
用途:按指定格式输出结果。 参数:
返回:字符串。
范例
return FormatCurr('0.000E+00', 232.24);
// 输出:2.322E+02
参考SetFormatLocalCode GetFormatLocalCode
####### TryStrToCurr
用途:字符串相关函数。 参数:
返回:字符串。
范例
TryStrToCurr('1321.2333', s);
return s;
// 输出:1321.2333
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef SetFormatLocalCode GetFormatLocalCode
####### StrToInt
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
范例一:
return StrToInt("12");
// 输出: 12
范例二:支持16进制字符串的转换
return StrToInt("0xC");
// 输出: 12
参考StrToInt IntToHex StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### BoolToStr
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
return BoolToStr(1 > 2, 0);
// 输出:0
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### CurrToStr
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
return CurrToStr(23.24);
// 输出字符串:"23.24"
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr SetFormatLocalCode GetFormatLocalCode
####### TryStrToBool
用途:字符串相关函数。 参数:
返回:字符串。
范例
TryStrToBool("12", s);
return s; // 输出: 1
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### SpaceByNumber
用途:字符串相关函数。 参数:
返回:字符串。
范例
return write('---', SpaceByNumber(2), '---');
运行信息打印结果:
####### IsValidIdent
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
return IsValidIdent('a0ffh2');
// 输出: 1
####### StrToBool
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToBool("12"); // 输出: 1
return StrToBool("0"); // 输出: 0
参考IntToHex StrToInt IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### StrToFloat
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToFloat('3434.244');
// 输出实数:3434.24
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr SetFormatLocalCode GetFormatLocalCode
####### StrToBoolDef
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToBoolDef("12", 3);
// 输出: 1
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### IntToStr
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
return IntToStr(43);
// 输出:"43"
参考IntToHex StrToInt StrToBool StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurr StrToCurrDef TryStrToCurr
####### StrToCurr
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
return StrToCurr('1321.23333');
// 输出实数:1321.2333
参考IntToHex StrToInt StrToBool IntToStr StrToIntDef TryStrToInt StrToBoolDef TryStrToBool BoolToStr FloatToStr CurrToStr StrToFloat StrToFloatDef TryStrToFloat StrToCurrDef TryStrToCurr SetFormatLocalCode GetFormatLocalCode
####### AnsiStr2Array
范例
r := ansiStr2Array("和顺电气退和顺电气", "退"); // 以中文分隔
return r; // 输出:array("和顺电气","和顺电气")
参考str2array
####### TryUppercase
用途:进行大小写转换。 参数:
返回:字符串。
范例
return TryUppercase("abc");
// 结果:"ABC"
####### TryLowercase
范例
return TryUppercase("ABC");
// 结果:"abc"
####### SysEncodecryptStr
范例
s := "Server=127.0.0.1;Database=tsBase;Uid=TinySoft;Pwd=admin;";
encodeS := sysencodecryptstr(s, 0);
return encodeS;
返回字符串:_ENCODE_3A364432572518291B2C02321C2C0233084C2D59385A3B482D10641755344722194C25417C28412F56056A0C78431364003D5C38553C5269
####### Letters
范例
return letters(1, 0);
// 结果:a
####### DecToInt64
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:
return DecToInt64("12"); // 输出: 12L
范例02:十六进制格式字符串的转换
return DecToInt64("0x12"); // 报错
return StrToInt64("0x12"); // 输出:18L
####### DecToInt64def
范例
范例01
return DecToInt64Def("12", 1); // 输出: 12L
return DecToInt64Def("test", 1); // 输出: 1L
范例02:十六进制格式字符串的转换
return DecToInt64Def("0x12", 1); // 输出: 1L
return StrToInt64Def("0x12", 1); // 输出:18L
####### TryDecToInt64
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:转换成功
ret := TryDecToInt64("12", value);
if ret then return value;
else return "转换失败!";
// 输出: 12L
范例02:转换失败
ret := TryDecToInt64("test", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
范例03:十六进制格式字符串的转换
ret := TryDecToInt64("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
ret := TryStrToInt64("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出:18L
####### DecToInt32
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01
return DecToInt32("12"); // 输出: 12
范例02:十六进制格式字符串的转换
return DecToInt32("0x12"); // 报错
return StrToInt32("0x12"); // 输出:18
####### DecToInt32def
范例
范例01
return DecToInt32Def("12", 1); // 输出: 12
return DecToInt32Def("test", 1); // 输出: 1
范例02:十六进制格式字符串的转换
return DecToInt32Def("0x12", 1); // 输出: 1
return StrToInt32Def("0x12", 1); // 输出:18
####### TryDecToInt32
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:转换成功
ret := TryDecToInt32("12", value);
if ret then return value;
else return "转换失败!";
// 输出: 12
范例02:转换失败
ret := TryDecToInt32("test", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
范例03:十六进制格式字符串的转换
ret := TryDecToInt32("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
ret := TryStrToInt32("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出:18
####### StrToInt64
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
范例01:
return StrToInt64("12"); // 输出: 12L
范例02:十六进制格式字符串的转换
return StrToInt64("0x12"); // 输出:18L
####### StrToInt64Def
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
范例01
return StrToInt64Def("12", 1); // 输出: 12L
return StrToInt64Def("test", 1); // 输出: 1L
范例02:十六进制格式字符串的转换
return StrToInt64Def("0x12", 1); // 输出:18L
####### TryStrToInt64
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:转换成功
ret := TryStrToInt64("12", value);
if ret then return value;
else return "转换失败!";
// 输出: 12L
范例02:转换失败
ret := TryStrToInt64("test", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
范例03:十六进制格式字符串的转换
ret := TryStrToInt64("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出:18L
####### StrToInt32
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
范例01:
return StrToInt32("12"); // 输出: 12
范例02:十六进制格式字符串的转换
return StrToInt32("0x12"); // 输出:18
####### StrToInt32Def
用途:将字符串转换为对应类型。 参数:
返回:转换后的数值或日期。
范例
范例01
return StrToInt32Def("12", 1); // 输出: 12
return StrToInt32Def("test", 1); // 输出: 1
范例02:十六进制格式字符串的转换
return StrToInt32Def("0x12", 1); // 输出:18
####### TryStrToInt32
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:转换成功
ret := TryStrToInt32("12", value);
if ret then return value;
else return "转换失败!";
// 输出: 12
范例02:转换失败
ret := TryStrToInt32("test", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
范例03:十六进制格式字符串的转换
ret := TryStrToInt32("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出:18
####### DecToInt
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01
return DecToInt("12"); // 输出: 12
范例02:十六进制格式字符串的转换
return DecToInt("0x12"); // 报错
return StrToInt("0x12"); // 输出:18
####### DecToIntDef
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01
return DecToIntDef("12", 1); // 输出: 12
return DecToIntDef("test", 1); // 输出: 1
范例02:十六进制格式字符串的转换
return DecToIntDef("0x12", 1); // 输出: 1
return StrToIntDef("0x12", 1); // 输出:18
####### TryDecToInt
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:转换成功
ret := TryDecToInt("12", value);
if ret then return value;
else return "转换失败!";
// 输出: 12
范例02:转换失败
ret := TryDecToInt("test", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
范例03:十六进制格式字符串的转换
ret := TryDecToInt("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出: "转换失败!"
ret := TryStrToInt("0x12", value);
if ret then return value;
else return "转换失败!";
// 输出:18
判定函数
####### 内容
- AnsiContainsText
- AnsiStartsText
- AnsiEndsText
- AnsiMatchText
- AnsiContainsStr
- AnsiStartsStr
- AnsiEndsStr
- AnsiMatchStr
- FormatStrExt
####### AnsiContainsText
用途:字符串相关函数。 参数:
返回:字符串。
范例
text := 'abcdefg';
return AnsiContainsText(text, 'Abcd');
// 输出:1,包含
参考AnsiContainsStr
####### AnsiStartsText
用途:字符串相关函数。 参数:
返回:字符串。
范例
text := 'abcdefg';
return AnsiStartsText('Abc', text);
// 输出:1
参考AnsiStartsStr
差异说明对于空字符串,windows系统中判定为1,Linux中判定为0。其它表现无差别。
如:return AnsiStartsText("","A"); //windows中返回1,而Linux中返回0。
####### AnsiEndsText
用途:字符串相关函数。 参数:
返回:字符串。
范例
text := 'abcdefg';
return AnsiEndsText('Efg', text);
// 输出:1
参考AnsiEndsStr
差异说明对于空字符串,windows系统中判定为1,Linux中判定为0。其它表现无差别。
如:return AnsiEndsText("","A"); //windows中返回1,而Linux中返回0。
####### AnsiMatchText
用途:字符串相关函数。 参数:
返回:字符串。
范例
AText := 'ABZ';
AValues := array();
AValues[0] := 'abcdefg';
AValues[1] := 'abz';
return AnsiMatchText(AText, AValues);
// 输出:1
// ab不能完全匹配Avalues数组中的值
return AnsiMatchText('ab', AValues);
// 输出:0
参考AnsiMatchStr
####### AnsiContainsStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
AText := 'abcdefg';
return AnsiContainsStr(AText, 'Bcd');
// 输出:1
参考AnsiContainsText
####### AnsiStartsStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
Atext := 'abcdefg';
return AnsiStartsStr('abcd', Atext);
// 输出:1
参考AnsiStartsText
####### AnsiEndsStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
text := 'abcdefg';
return AnsiEndsStr('efg', text);
// 输出:1
参考AnsiEndsText
####### AnsiMatchStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
AText := 'ABZ';
AValues := array();
AValues[0] := 'abcdefg';
AValues[1] := 'abz';
return AnsiMatchStr(AText, AValues);
// 输出:0 ,大小写敏感
参考AnsiEndsText
####### FormatStrExt
用途:按指定格式输出结果。 参数:
返回:字符串。
范例
return FormatStrExt('aaaaa');
// 结果:’aaaaa’
return FormatStrExt(123);
// 结果:’-’
替换以及处理函数
####### 内容
- StuffString
- AnsiReplaceText
- AnsiReplaceStr
- ReplaceText
- ReplaceStr
- WrapText
- AdjustLineBreaks
- ReverseString
- SeprateStrToTotal
- TotalStrToSeprate
- DateStrToArr
- RdateStrToArr
####### StuffString
用途:字符串相关函数。 参数:
返回:字符串。
范例
Atext := "Here will be instead by \'HERE\'";
ASubText := "HERE";
return StuffString(Atext, 1, 4, ASubText);
// 输出:HERE will be instead by ‘HERE’
####### AnsiReplaceText
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
AText := "First will be instead by \'Final\'";
AFromText := "First";
AToText := "FINAL";
return AnsiReplaceText(AText, AFromText, AToText);
// 输出字符串:FINALwill be instead by 'Final'
输出:Final will be instead by F参考AnsiReplaceStr
####### AnsiReplaceStr
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
AText := "Big will be replaced by \'BIG\', but big won\'t be replaced by \'BIG\'.";
AFromText := "Big";
AToText := "BIG";
return AnsiReplaceStr(AText, AFromText, AToText);
// 输出:BIG will be replaced by 'BIG', but big won't be replaced by 'BIG'.
参考AnsiReplaceText
####### ReplaceText
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
AText := "The first letter will be replaced by \'one\', but the second letter won't.";
AFromText := "letter";
AToText := "one";
return ReplaceText(AText, AFromText, AToText);
// 输出:The first one will be replaced by 'one', but the second one won't.n
####### ReplaceStr
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
AText := "The First LETTER in uppercase won\'t be replaced by \'one\', but the Second letter in lowercase will.";
AFromText := "letter";
AToText := "one";
return ReplaceStr(AText, AFromText, AToText);
// 输出:The First LETTER in uppercase won't be replaced by 'one', but the Second one in lowercase will.
####### WrapText
用途:字符串相关函数。 参数:
返回:字符串。
范例
ConstLine := "Separate this sentence to two lines.";
return WrapText(ConstLine, 20);
{输出:
(自动换行时考虑字词的完整性)
Separate this
sentence to two
lines.
}
####### AdjustLineBreaks
用途:字符串相关函数。 参数:
返回:字符串。
范例
范例01:调整字符串的换行模式
r := AdjustLineBreaks("Tinysoft \r\n Statistical \r\nanalysis Language", 1);
return r;
{输出字符串:
Tinysoft
Statistical
analysis Language
}
范例02:数组中的应用-批量操作
r := adjustlinebreaks(array("Tinysoft \n Statistical \nanalysis Language", "aa\r\nbb"), 1);
return r;
输出结果:字符串中的换行符统一转换成\r\n
####### ReverseString
用途:字符串相关函数。 参数:
返回:字符串。
范例
return ReverseString('abcde1234');
// 返回字符串:4321edcba
ho tostn(r);//输出:"Tinysoft\n Statistical \nanalysis Language"
####### SeprateStrToTotal
用途:字符串相关函数。 参数:
返回:字符串。
范例
return SeprateStrToTotal('债券型;现金型;配置型;股票型;保本型');
// 结果:’债券型#现金型#配置型#股票型#保本型’
####### TotalStrToSeprate
用途:字符串相关函数。 参数:
返回:字符串。
范例
return TotalStrToSeprate ('债券型#现金型#配置型#股票型#保本型');
// 结果:’债券型;现金型;配置型;股票型;保本型’
####### DateStrToArr
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return DateStrToArr('2007-9-10;2007-9-10', '$', ';'); // '$'表示结束位置
####### RdateStrToArr
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return RDateStrToArr('20070331;20070630');
字符串数组相关函数
####### 内容
- AnsiIndexText
- AnsiIndexStr
####### AnsiIndexText
用途:字符串相关函数。 参数:
返回:整数。
范例
egStr := "ansiIndexText";
strArr := array("Tinysoft", "Statistical", "analysis", "Language", "ansiIndexText");
result := ansiIndexText(egStr, strArr);
return result;
// 4
参考AnsiIndexStr
####### AnsiIndexStr
用途:字符串相关函数。 参数:
返回:整数。
范例
// 大小写敏感,没有找到相应的字符串,返回-1
egStr := "ansiIndexstr";
strArr := array("Tinysoft", "Statistical", "analysis", "Language", "ansiIndexStr");
result := ansiIndexStr(egStr, strArr);
return result;
// 输出:-1
参考AnsiIndexText
重复函数
####### 内容
- DupeString
####### DupeString
用途:字符串相关函数。 参数:
返回:字符串。
范例
S := DupeString('Ha', 5);
return s;
// 输出:表示将S的值变为'HaHaHaHaHa'
多字节语言支持函数
####### 内容
- LengthW
- MidStr
####### LengthW
用途:字符串相关函数。 参数:
返回:整数。
范例
testStr := "Tinysoft lengthW:汉字当成一个字符";
return lengthW(testStr);
// 输出:25(包括空格和:)
参考LeftStr RightStr MidStr
####### MidStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
testStr := "Tinysoft midStr:支持多字节语言,汉字当成一个字符";
return midStr(testStr, 10, 30);
// 输出字符串:“midStr:支持多字节语言,汉字当成一个字符”
参考LeftStr RightStr LengthW
字节函数
字节函数,处理非MBCS的原始字符串,本身存在非B或者ANSI版本。
####### 内容
- ContainsText
- StartsText
- EndsText
- ContainsStr
- StartsStr
- EndsStr
- StuffbString
- ReversebString
####### ContainsText
用途:字符串相关函数。 参数:
返回:字符串。
范例
a := L'2020Tinysoft 天软';
b := L'tinysoft';
return ContainsText(a, b); // 返回1,包含
####### StartsText
用途:字符串相关函数。 参数:
返回:字符串。
范例
text := 'abcdefg';
return StartsText('Abc', text);
// 输出:1
差异说明对于空字符串,windows系统中判定为1,Linux中判定为0。其它表现无差别。
如:return StartsText("","A"); //windows中返回1,而Linux中返回0。
####### EndsText
用途:字符串相关函数。 参数:
返回:字符串。
范例
text := 'abcdefg';
return EndsText('Efg', text);
// 输出:1
差异说明对于空字符串,windows系统中判定为1,Linux中判定为0。其它表现无差别。
如:return EndsText("","A"); //windows中返回1,而Linux中返回0。
####### ContainsStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
a := '2020Tinysoft 天软';
b := 'tinysoft';
c := 'Tinysoft';
return array(ContainsStr(a, b), ContainsStr(a, c));
// 输出:array(0,1)
####### StartsStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
Atext := 'abcdefg';
return StartsStr('abcd', Atext);
// 输出:1
####### EndsStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
text := 'abcdefg';
return EndsStr('efg', text);
// 输出:1
####### StuffbString
用途:字符串相关函数。 参数:
返回:字符串。
范例
Atext := "Here will be instead by \'HERE\'";
ASubText := "HERE";
return StuffbString(Atext, 1, 4, ASubText);
// 输出:HERE will be instead by ‘HERE’
####### ReversebString
用途:字符串相关函数。 参数:
返回:字符串。
范例
a := L'2020Tinysoft 天软'; // 宽字节字符串的表达方式
return ReversebString(a);
// 返回字符串:软天 tfosyniT0202
发音相关函数
####### 内容
- SoundEx
- SoundexInt
- DecodeSoundexInt
- SoundexWord
- DecodeSoundexWord
- SoundexSimilar
- SoundexCompare
- SoundexProc
- AnsiResemblesText
####### SoundEx
用途:字符串相关函数。 参数:
返回:字符串。
范例
testStr1 := "sun";
s1 := SoundEx(testStr1, 4);
testStr2 := "sum";
s2 := SoundEx(testStr2, 4);
testStr3 := "test";
s3 := SoundEx(testStr3, 4);
return array(s1, s2, s3);
// 输出:array("S500","S500","T230")
####### SoundexInt
用途:字符串相关函数。 参数:
返回:字符串。
范例
testStr1 := "sun";
s1 := SoundexInt(testStr1, 4);
testStr2 := "sum";
s2 := SoundexInt(testStr2, 4);
testStr3 := "test";
s3 := SoundexInt(testStr3, 4);
return array(s1, s2, s3);
// 输出:array(208597,208597,218929)
参考DecodeSoundexInt
####### DecodeSoundexInt
用途:字符串相关函数。 参数:
返回:字符串。
范例
testStr := "Tinysoft SoundexInt:返回表示AText的发音的整数";
testStr := DecodeSoundexInt(SoundexInt(testStr, 4));
return testStr;
// T521
参考SoundexInt
####### SoundexWord
范例
testStr := "Tinysoft SoundexInt:返回表示AText的发音的整数";
testStr := soundexWord(SoundEx(testStr, 4));
return testStr;
// 24206
参考DecodeSoundexWord
####### DecodeSoundexWord
范例
testStr := "Tinysoft SoundexInt:返回表示AText的发音的整数";
testStr := decodesoundexWord(soundexWord(SoundEx(testStr, 4))); // 24206
return testStr;
// T000
参考SoundexWord
####### SoundexSimilar
用途:字符串相关函数。 参数:
返回:字符串。
范例
return SoundexSimilar("sun", "sum");
// 输出:1
return SoundexSimilar("sun", "fun");
// 输出:0
return SoundexSimilar("return ", "result");
// 输出:0
####### SoundexCompare
用途:字符串相关函数。 参数:
返回:字符串。
范例
return SoundexCompare("sun", "sum");
// 输出:0
return SoundexCompare("sun", "fun");
// 输出:1
return SoundexCompare("result", "return ");
// 输出:-1
####### SoundexProc
用途:字符串相关函数。 参数:
返回:字符串。
范例
return SoundexProc("sun", "sum");
// 输出:1
return SoundexProc("sun", "fun");
// 输出:0
return SoundexProc("transaction", "transact");
// 输出:1
####### AnsiResemblesText
用途:字符串相关函数。 参数:
返回:字符串。
范例
return AnsiResemblesText("sun", "sum");
// 输出:1
return AnsiResemblesText("sun", "fun");
// 输出:0
return AnsiResemblesText("transaction", "transact");
// 输出:1
正则表达式函数
####### 内容
- ParseRegExpr
- ParseRegExpr:替换功能
- GetLikeFlag
- SetLikeFlag
- ReplaceStrByReg
- ReplaceTextByReg
- ParseRegExpr3
####### ParseRegExpr
范例
范例01:匹配数字、指定字符串
source := "ParseRegExpr 2011 ShenZhenTinysoft (TSL)";
ParseRegExpr("(\\d+).*(Tinysoft)", source, "", result, MPos, Mlen);
return result;
// 输出:array(("2011 ShenZhenTinysoft","2011","Tinysoft"))
说明:
结果中返回匹配的源串"2011 ShenZhenTinysoft"以及匹配出来的串"2011"和"Tinysoft"
1、在匹配串中加中括号()是表示将匹配的结果返回,下面的例子中,要返回的匹配串的内容是(\d+)和(tinysoft)匹配出来的结果。
2、\本身就是转义字符,所以要用\d来表示\d是一个元字符(表示匹配一个数字字符)。\d+表示匹配多个数字字符。
3、.表示匹配任意单个字符,除'\n'外。.*表示匹配任意多个单个字符。由于.*没有中括号(),所以匹配的字符不返回。
4、(Tinysoft)匹配字符串Tinysoft,并将匹配的字符返回。注意,字符大小写敏感。
范例02:匹配数字、字符串、带括号的字符串
source := "ParseRegExpr 2011 ShenZhenTinysoft (TSL)";
ParseRegExpr("(\\d+).*(Tinysoft) (\\(\\w+\\))", source, "", result, MPos, Mlen);
return result;
// 输出:array(("2011 ShenZhenTinysoft (TSL)","2011","Tinysoft","(TSL)"))
说明:
与范例01相比,新增了对()的匹配。
结果中返回匹配的源串"2011 ShenZhenTinysoft (TSL)"以及匹配出来的串"2011"、"Tinysoft"和"(TSL)"。
1、\(和\)是对中括号()的匹配。
2、\w表示\w是一个元字符,匹配包括下划线的任何单词字符。\w+表示匹配多个任意单词字符。
范例03:处理Unicode串-匹配汉字
source := L"hello 你好!123"; // unicode串
reg := L"[\u4E00-\u9FA5]+"; // 匹配汉字的正则表达式->也是unicode串
ret := ParseRegExpr(reg, source, "", result, MPos, Mlen);
return result;
返回结果:array((L"你好"))
范例04:通过控制符"u"设置为非贪婪模式
source := "hello tiny tiny tiny tiny tiny";
reg := "hello.*(tiny)";
ret := ParseRegExpr(reg, source, "u", result, MPos, Mlen);
return result;
返回:array(("hello tiny","tiny"))
####### ParseRegExpr:替换功能
范例
范例三:求值宏
// 求值宏,将数字后的字母替换到数字前
source := "ddd2011a uuuu 2012b zzzz 2013c xxx";
ParseRegExpr("(\\d+)(\\w+)", source, "r", "$2$1", s );
return s;
ddda2011 uuuu b2012 zzzz c2013 xxx
范例四:回调函数
// 回调函数,替换匹配串第1位+匹配串+匹配串第二位
Source := "ParseRegExpr 2011 ShenZhenTinysoft (TSL)";
ParseRegExpr("(\\d+).*(Tinysoft)", source, "r", function(a) begin return a[1] + a[0] + a[2];end, s);
return s;
参考正则表达式
####### GetLikeFlag
范例
s := "ParseRegExpr 2011 \r\n ShenZhenTinysoft (TSL)";
reg := "(\\d+).*(tinysoft)";
SetLikeFlag(0b0001 + 0x0010); // 大小写无关+使 '.' 特殊字符匹配任意字符
r := s like reg;
return getlikeflag(); // 获取当前正则控制符状态
// 返回17
####### SetLikeFlag
范例
s := "ParseRegExpr 2011 \r\n ShenZhenTinysoft (TSL)";
reg := "(\\d+).*(tinysoft)";
SetLikeFlag(0b0001 + 0x0010); // 大小写无关+使 '.' 特殊字符匹配任意字符
return s like reg;
返回:1
####### ReplaceStrByReg
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
return ReplaceStrByReg("abcdeak", "A", "kkkk");
// 结果:abcdeak
####### ReplaceTextByReg
用途:进行字符串提取或替换处理。 参数:
返回:字符串。
范例
return ReplaceTextByReg("abcdeak", "a", "kkkk");
// 结果:kkkkbcdekkkkk
####### ParseRegExpr3
用途:解析输入并返回结果。 参数:
返回:字符串。
范例
return ParseRegExpr3("abcdeak", "ab", "kkkk", "ir");
// 结果:kkkkcdeak
正则表达式
####### 内容
- 什么是正则表达式
- 正则表达式基础
- 正则表达式中的元字符
####### 什么是正则表达式
一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用,不过,经过学习之后这些复杂的表达式其实相当简单,而且,一旦弄懂了,你就能把难处理而且容易出错的文本处理工作压缩在几分钟(甚至几秒钟)内完成。正则表达式被各种语言、编辑工具、脚本工具广泛的支持,TSL语言也支持它。
但是,由于正则表达式本身缺少一个规范,因此,各个系统对正则表达式的实现也不同,TSL语言中采用了PERL兼容的正则表达式。
####### 正则表达式基础
正则表达式由一些普通字符和一些元字符组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。
在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符,,它可以匹配"testing"和"123testing"等字符串,但是不能匹配"Testing"。
####### 正则表达式中的元字符
要想真正的用好正则表达式,正确的理解元字符是最重要的事情。下表列出了所有的元字符和对它们的一个简短的描述。
注:由于TSL语言的字符串常量中\本身就是转义字符,因此,只要牵涉到\的,就要用\来描述,因而象\s的TSL常量表述则为’\s’。
| 字符 | 描述 |
|---|---|
| \ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '' 匹配 "" 而 "(" 则匹配 "("。 |
| ^ | 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 |
| $ | 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。 |
| * | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。 |
| + | 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 |
| 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。 | |
| {n} | n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 |
| {n,} | n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 |
| {n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。如:"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 |
| 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。 |
|
| . | 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。 |
| (pattern) | 匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到。要匹配圆括号字符,请使用 '' 或 ''。 |
| (?:pattern) | 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。 |
| (?=pattern) | 正向预查,在任何未来符合匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
| (?!pattern) | 负向预查,在任何不匹配未来符合匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始 |
| x|y | 匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或"food"。 |
| [xyz] | 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。 |
| [^xyz] | 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。 |
| [a-z] | 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。 |
| [^a-z] | 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。 |
| \b | 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 |
| \B | 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 |
| \cx | 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。 x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 |
| \d | 匹配一个数字字符。等价于 [0-9]。 |
| \D | 匹配一个非数字字符。等价于 [^0-9]。 |
| \f | 匹配一个换页符。等价于 \x0c和 \cL。 |
| \n | 匹配一个换行符。等价于 \x0a和 \cJ。 |
| \r | 匹配一个回车符。等价于 \x0d 和 \cM。 |
| \s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 |
| \S | 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 |
| \t | 匹配一个制表符。等价于 \x09 和 \cI。 |
| \v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 |
| \w | 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。 |
| \W | 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。 |
| \xn | 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如, '\x41' 匹配 "A"。'\x041' 则等价于 '\x04' & "1"。正则表达式中可以使用ASCII 编码。. |
| \num | 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)' 匹配两个连续的相同字符。 |
| \n | 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。 |
| \nm | 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。 |
| \nml | 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。 |
| \un | 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如,\u00A9 匹配版权符号 (?)。 |
多语言支持函数
####### 内容
- NextCharIndex
- AnsiToUTF8
- UTF8ToAnsi
- CharToByteIndex
- ByteToCharLen
- AnsiQuotedStr
- AnsiPos
- AnsiDequotedStr
- CharToByteLen
- CharLength
- ByteToCharIndex
- ByteType
- Booltostrw
- UnicodeESC
- unUnicodeESC2
- UnicodeToMultiByte
- FloattoStrw
- UnicodeESC2
- unUnicodeESCw
- UnicodetoUTF8
- CurrtoStrw
- Inttostrw
- MultibyteToUnicode
- Booltostrw2
- Strw
- Inttohexw
- LCMapString
- MultibytetoUnicodew
- UTF8toUnicode
- Exportjsonstring
- unUnicodeESC2w
- unUnicodeESC
- Ifwstring
- MakeLCID
- Importjsonstring
- ExportJsonStringUTF8
- ExportJSONStringMBCS
####### NextCharIndex
范例
// ‘软’的开始字节是3,下一个字符是‘T’,‘T’的开始字节位置是5
S := "天软Tinysoft Statistical analysis Language";
return nextCharIndex(s, 3);
// 返回:5
####### AnsiToUTF8
用途:字符串相关函数。 参数:
返回:字符串。
范例
return AnsiToUTF8('2011 tinysoft天软科技');
// 返回字符串:2011 tinysoft澶╄蒋绉戞妧
####### UTF8ToAnsi
用途:字符串相关函数。 参数:
返回:字符串。
范例
return UTF8ToAnsi ('2011 tinysoft澶╄蒋绉戞妧');
// 返回字符串:2011 tinysoft天软科技
####### CharToByteIndex
用途:字符串相关函数。 参数:
返回:整数。
范例
// 返回第30字符对应的字节位置
// 其中‘天软’占有4个字节,其余每个字符占1个字节
S := "天软Tinysoft Statistical analysis Language";
return CharToByteIndex(s, 30);
// 返回:32
####### ByteToCharLen
用途:字符串相关函数。 参数:
返回:整数。
范例
// 指定最多字节为30后,查找S中30个字节中有多少个字符,
// 其中‘天软’占有4个字节,所以30个字节中,S有28个字符。
S := "天软Tinysoft Statistical analysis Language";
b1 := ByteToCharLen(S, 30);
return b1;
// 返回:28
####### AnsiQuotedStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
S := "天软Tinysoft Statistical analysis Language";
return AnsiQuotedStr(s, "'");
// 返回字符串:'天软Tinysoft Statistical analysis Language'
####### AnsiPos
用途:字符串相关函数。 参数:
返回:整数。
范例
return AnsiPos("tinysoft", "2011 tinysoft");
// 6
####### AnsiDequotedStr
用途:字符串相关函数。 参数:
返回:字符串。
范例
S := "'天软Tinysoft Statistical analysis Language'";
return AnsiDequotedStr(s, "'");
// 返回字符串:天软Tinysoft Statistical analysis Language
####### CharToByteLen
用途:字符串相关函数。 参数:
返回:整数。
范例
// 在S字符串中取30个字符,统计其所占的字节数。
// 其中‘天软’占有4个字节,其余每个字符占1个字节,由此,30个字符占有32个字节
S := "天软Tinysoft Statistical analysis Language";
b1 := CharToByteLen(S, 30);
return b1;
// 返回:32
####### CharLength
用途:字符串相关函数。 参数:
返回:整数。
范例
// 第2个字符‘软’的字节数
S := "天软Tinysoft Statistical analysis Language";
return CharLength(s, 2);
// 返回:2
####### ByteToCharIndex
用途:字符串相关函数。 参数:
返回:整数。
范例
// 返回第30字节位置时,是第几个字符位置
// 其中‘天软’占有4个字节,其余每个字符占1个字节
S := "天软Tinysoft Statistical analysis Language";
return ByteToCharIndex(s, 30);
// 返回:28
####### ByteType
用途:字符串相关函数。 参数:
返回:字符串。
范例
// 单字节字符‘t’
return ByteType("2011 tinysoft", 6);
// 0
// 多字节字符‘天’
return ByteType("2011 tinysoft天软", 14);
// 1
// 多字节字符‘软’,且为最后一个字符
return ByteType("2011 tinysoft天软", 15);
// 2
// 单字节字符‘1’,最后一个字符
return ByteType("2011 ", 4);
// 0
####### Booltostrw
范例
return booltostrw(2 > 1);
// 返回宽字节字符串:-1
####### UnicodeESC
用途:字符串相关函数。 参数:
返回:字符串。
范例
return echo UnicodeESC('2011 tinysoft天软科技');
// 返回字符串:2011%20tinysoft%u5929%u8F6F%u79D1%u6280
####### unUnicodeESC2
用途:字符串相关函数。 参数:
返回:字符串。
范例
return unUnicodeESC2(%%g 2011 tinysoft\u5929\u8F6F\u79D1\u6280%%g);
// 返回字符串:2011 tinysoft天软科技
// 注:其中\uxxxx编码方式中的\是一个转义字符,所以需要用非转义字符串%%方式进行表达。
####### UnicodeToMultiByte
####### FloattoStrw
范例
return floattostrw(1234.1234);
// 输出宽字节字符串:“1234.1234”
####### UnicodeESC2
范例
return UnicodeESC('2011 tinysoft天软科技');
// 返回字符串:2011 tinysoft\u5929\u8F6F\u79D1\u6280
####### unUnicodeESCw
用途:字符串相关函数。 参数:
返回:字符串。
范例
return unUnicodeESCw('2011%20tinysoft%u5929%u8F6F%u79D1%u6280');
// ’ 2011 tinysoft天软科技’
####### UnicodetoUTF8
范例
return unicodetoutf8(L'2020 Tinysoft 天软科技');
// 返回:2020 Tinysoft 澶╄蒋绉戞妧
####### CurrtoStrw
范例
return CurrToStrw(23.24);
// 输出字符串:"23.24"
####### Inttostrw
范例
s := inttostrw(2);
return array(ifstring(s), ifwstring(s));
// 返回:array(0,1) 说明返回结果串s为宽字节串,而非多字节字符串。
####### MultibyteToUnicode
####### Booltostrw2
范例
return booltostrw2(2 > 1);
// 返回宽字节字符串:True
####### Strw
范例
v := strw(123.123, s);
return s;
// 返回宽字节字符串:1.23123000000000E+0002
####### Inttohexw
范例
return inttohexw(43, 5);
// 返回宽字符串字符串:0002B
####### LCMapString
范例
lcmapstring(s,0x0804,0x2000000);//可以把繁体转换为简体字符集
return lcmapstring("亞洲", 0x0804, 0x2000000);
返回:亚洲
差异说明由于根据windowsAPI的开发,所以Linux中不支持。
####### MultibytetoUnicodew
范例
return multibytetounicodew('2020 Tinysoft 天软科技', 936);
// 返回宽字节字符串:2020 Tinysoft 天软科技 即L’ 2020 Tinysoft 天软科技’
####### UTF8toUnicode
范例
return UTF8ToUnicode ('2011 tinysoft澶╄蒋绉戞妧');
// 返回双字节字符串:2011 tinysoft天软科技
####### Exportjsonstring
范例
范例01:将天软含中文的字符串转化为json串
s := stockname('SZ000002'); // 万 科A
return exportjsonstring(s);
// 返回字符串:"\u4E07 \u79D1\uFF21"
范例02:将数组转化为json串
s := array((1, 'a'), ('Tinysoft天软', '天软科技'));
return exportjsonstring(s);
// 返回字符串:[[1,"a"],["Tinysoft\u5929\u8F6F","\u5929\u8F6F\u79D1\u6280"]]
####### unUnicodeESC2w
用途:字符串相关函数。 参数:
返回:字符串。
范例
return unUnicodeESC2w(%%g 2011 tinysoft\u5929\u8F6F\u79D1\u6280%%g);
// 返回宽字节字符串:2011 tinysoft天软科技
// 注:其中\uxxxx编码方式中的\是一个转义字符,所以需要用非转义字符串%%方式进行表达。
####### unUnicodeESC
用途:字符串相关函数。 参数:
返回:字符串。
范例
return unUnicodeESC('2011%20tinysoft%u5929%u8F6F%u79D1%u6280');
// ’ 2011 tinysoft天软科技'‘
####### Ifwstring
范例
范例一:
// 判断是否为宽字节字符串类型
r1 := IfWString(1);
r2 := IfWString("A");
r3 := IfWString(L"C");
r4 := IfWString(array(1, "A", L"C"));
return array(r1, r2, r3, r4);
// 结果:array(0,0,1,0)
范例二:
// 对数组第一维度数据进行类型判断
t := array(L"C", 3.56, "A", (1, L"C", 3), nil);
return IfWString(t, -1);
// 结果:array(1,0,0,0,0)
范例三:
// 对数组中每一数据进行类型判断
t := array(L"C", 3.56, "A", (nan, 2.14, L"C"), nil);
return IfWString(t, 1);
// 结果:array(1,0,0,(0,0,1),0)
####### MakeLCID
####### Importjsonstring
范例
范例01:将json串转换成天软字符串
json := %%g"\u4E07 \u79D1\uFF21"%%g;
// 注:在上述语句中,原串存在转义字符,需要用到非转义字符串%%表示该字符串,不能用引号进行表示。
return importjsonstring(json);
// 返回字符串:万 科A
范例02:将exportjsonstring转化的json串转为天软数据结构
s := array((1, 'a'), ('Tinysoft天软', '天软科技'));
json := exportjsonstring(s);
return importjsonstring(json);
// 返回
0
1
1
a
Tinysoft天软
// 天软科技
范例03:
arr := array(("code":"PFTSDEMO0004", "name":"商品跨期"),
("代码":"PFTSDEMO0003", "name":"债券组合"));
return importJsonString(Utf8toAnsi(exportJsonStringUTF8(arr)));
返回
| code | name | 代码 |
|---|---|---|
| PFTSDEMO0004 | 商品跨期 | |
| 债券组合 | PFTSDEMO0003 |
范例04:将大的无符号数字转为int64
json := %%g 4611686018427387904 %%g;
return importjsonstring(json);
####### ExportJsonStringUTF8
范例
范例01:
a := select ['StockID'], ['StockName'], datetostr(['date']) as'date', ['close']
from markettable datekey 20200901T
to 20200902T of'SZ000002'end;
return exportjsonstringutf8(a);
返回字符串
[{"StockID":"SZ000002","StockName":"涓 绉戯肌","date":"2020-09-01","close":27.22},{"StockID":"SZ000002","StockName":"涓 绉戯肌","date":"2020-09-02","close":27.52}]
范例02:与python交互中的应用
pythonCode
import sys
sys.path.append('C:\Program Files\Tinysoft\Analyse.NET')
import TSLPy3
s := """
a := select ['StockID'], ['StockName'], datetostr(['date']) as'date', ['close']
from markettable datekey 20200901T
to 20200902T of'SZ000002'end;
return exportjsonstringutf8(a);
"""
data := TSLPy3.RemoteExecute(s, {})
print(data[1].decode('utf8'))
python中返回:
[{"StockID":"SZ000002","StockName":"万 科A","date":"2020-09-01","close":27.22},{"StockID":"SZ000002","StockName":"万 科A","date":"2020-09-02","close":27.52}]
####### ExportJSONStringMBCS
用途:将字符串或数组序列化为 JSON 字符串,保留中文原码(MBCS),不转义为 \uXXXX。 参数:
返回:JSON 字符串。
范例
范例01:将天软含中文的字符串转化为json串
s := stockname('SZ000002'); // 万 科A
return ExportJSONStringMBCS(s);
// 返回字符串:"\"万 科A\""
范例02:将数组转化为json串
s := array((1, 'a'), ('Tinysoft天软', '天软科技'));
return ExportJSONStringMBCS(s);
// 返回字符串:"[[1,\"a\"],[\"Tinysoft天软\",\"天软科技\"]]"
文件名以及目录名相关处理函数
文件相关处理函数包括了对文件名、目录以及扩展名等等相关处理函数,以及文件时间以及和TDatetime之间的转换函数。
####### 内容
- ChangeFileExt
- ExtractFilePath
- ExtractFileDir
- ExtractFileDrive
- ExtractFileName
- ExtractFileExt
- ExtractRelativePath
- IsPathDelimiter
- IsDelimiter
- IncludeTrailingPathDelimiter
- IncludeTrailingBackslash
- ExcludeTrailingPathDelimiter
- ExcludeTrailingBackslash
- LastDelimiter
- AnsiCompareFileName
- SameFileName
- AnsiLowerCaseFileName
- AnsiUpperCaseFileName
####### ChangeFileExt
用途:字符串相关函数。 参数:
返回:字符串。
范例
// 实际D盘的test.tsl没有改变
return ChangeFileExt("D:\\test.tsl", ".txt");
// D:\test.txt
####### ExtractFilePath
用途:字符串相关函数。 参数:
返回:字符串。
范例
return ExtractFilePath("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// D:\Tinysoft\tslweb\web\
####### ExtractFileDir
用途:字符串相关函数。 参数:
返回:字符串。
范例
return ExtractFileDir("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// D:\Tinysoft\tslweb\web
差异说明对于路径的处理,在不同系统中存在差异。如Linux中就没有驱动的概念,因此,在处理带驱动的路径时:
如对于根目录的处理extractfiledir("C:\abc.txt"),Windows中返回”C:\”而Linux中返回”C:”
####### ExtractFileDrive
用途:字符串相关函数。 参数:
返回:字符串。
范例
return ExtractFileDrive("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:D:
####### ExtractFileName
用途:字符串相关函数。 参数:
返回:整数。
范例
return ExtractFileName("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:test.tsl
####### ExtractFileExt
用途:字符串相关函数。 参数:
返回:字符串。
范例
return ExtractFileExt("D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:.tsl
####### ExtractRelativePath
用途:字符串相关函数。 参数:
返回:字符串。
范例
return ExtractRelativePath("D:\\test.tsl", "D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:Tinysoft\tslweb\web\test.tsl
差异说明由于Linux系统中无盘符概念,所以不支持该功能。
####### IsPathDelimiter
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
return IsPathDelimiter("D:\\Tinysoft\\tslweb\\web\\test.tsl", 3);
// 输出:1
####### IsDelimiter
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
return IsDelimiter("tinysoft", "2011 tinysoft", 6);
// 输出:1
####### IncludeTrailingPathDelimiter
用途:字符串相关函数。 参数:
返回:字符串。
范例
return IncludeTrailingPathDelimiter("D:\\Tinysoft\\tslweb\\web");
// 输出: D:\Tinysoft\tslweb\web\
差异说明与路径中存在的路径分割符保持一致,当路径中不存在分割符时,则Windows中默认增加"",在Linux中,则默认结路径路径加上”/”结尾。
如在Linux中:return IncludeTrailingPathDelimiter("/Tinysoft");
则返回字符串:/Tinysoft/
####### IncludeTrailingBackslash
用途:字符串相关函数。 参数:
返回:字符串。
范例
return IncludeTrailingBackslash ("D:\\Tinysoft\\tslweb\\web");
// 输出: D:\Tinysoft\tslweb\web\
差异说明与路径中存在的路径分割符保持一致,当路径中不存在分割符时,则Windows中默认增加"",在Linux中,则默认结路径路径加上”/”结尾。
如在Linux中:return IncludeTrailingBackslash ("/Tinysoft");
则返回字符串:/Tinysoft/
####### ExcludeTrailingPathDelimiter
用途:字符串相关函数。 参数:
返回:字符串。
范例
return ExcludeTrailingPathDelimiter("D:\\Tinysoft\\tslweb\\web\\");
// 输出: D:\Tinysoft\tslweb\web
####### ExcludeTrailingBackslash
用途:字符串相关函数。 参数:
返回:字符串。
范例
return ExcludeTrailingBackslash("D:\\Tinysoft\\tslweb\\web\\");
// 输出: D:\Tinysoft\tslweb\web
####### LastDelimiter
用途:字符串相关函数。 参数:
返回:字符串。
范例
return LastDelimiter('\\', "D:\\Tinysoft\\tslweb\\web\\test.tsl");
// 输出:23
####### AnsiCompareFileName
用途:字符串相关函数。 参数:
返回:整数。
范例
return AnsiCompareFileName('index.tsl', "test.tsl");
// 输出:-11
差异说明返回值的绝对值大小无实际意义,在不同操作系统中,其结果也表现不一。
在Linux中,由于文件名会区分大小写,而Windows中文件名不区分大小写,所以对比结果会有差异。
如:
在Windows中:
return AnsiCompareFileName("D:\test\file1.txt","D:\Test\File1.txt");
结果为0,因为不区分大小写,两文件名一致。
在Linux中:
return AnsiCompareFileName("/tinysoft/file1.txt","/Tinysoft/File1.txt");
结果为32,因为区分大小写,两文件名不相等。
####### SameFileName
用途:字符串相关函数。 参数:
返回:整数。
范例
return SameFileName('index.tsl', "test.tsl");
// 输出:0
####### AnsiLowerCaseFileName
用途:进行大小写转换。 参数:
返回:整数。
范例
return AnsiLowerCaseFileName("TEST.tsl");
// 输出:test.tsl
####### AnsiUpperCaseFileName
用途:进行大小写转换。 参数:
返回:整数。
范例
return AnsiUpperCaseFileName("test.tsl");
// 输出:TEST.TSL
其它
####### 内容
- GetPYStringList
- HztoPY
- DataUnitConversion
####### GetPYStringList
用途:字符串相关函数。 参数:无。 返回:字符串。
范例
sl := GetPYStringList();
return sl.values("明");
// 返回:M
####### HztoPY
用途:字符串相关函数。 参数:
返回:字符串。
范例
return HztoPY("华夏优势"); // HXYS
return HztoPY("华夏盛势"); // HXCS HXSS
####### DataUnitConversion
- GetPYStringList
- HztoPY
- DataUnitConversion
数组
内容
- 基本
- 数组下标以及长度相关函数
- 排序函数
- 增删改查
- 数组操作
- 数组取值
- 集合运算
- 统计函数
- 重构函数
- 稀疏矩阵
- 数据比较
- 表格显示
- 数组下标
基本
####### 内容
- FieldCount
- FieldExist
- FieldNames
- FieldName
- IsTable
- MagicSetArray
- NoRecordTable
- MagicGetArray
- RecordExist
- RecordExist2
- RecordExist3
- FieldNamesOfStrSubscript
- StrSubscriptTableToNormal
- FieldCountOfStrSubscript
- argmax
- Argmin
- PasswordGen
####### FieldCount
用途:数组相关函数。 参数:
返回:整数。
范例
t1 := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':3));
return FieldCount(t1);
// 结果:2
####### FieldExist
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':3));
return FieldExist(t1, 'b');
// 结果:1
####### FieldNames
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':3));return FieldNames(t1);
####### FieldName
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':3));
return FieldName(t1, 0);
// 结果:’a’
####### IsTable
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
t1 := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':3));
return IsTable(t1);
// 结果:1
####### MagicSetArray
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
范例01:
a := array((1, 2, 3), (4, 5, 6));
MagicsetArray(a, 1, 2, 10); // a[1][2] := 10
return a;
范例02:
a := array((1, 2, 3), (4, 5, 6));
MagicSetArray(a, array(1, 2), "b"); // a[1][2] := "b"
return a;
参考MagicGetArray
####### NoRecordTable
用途:数组相关函数。 参数:无。 返回:处理后的结果值。
范例
return NoRecordTable();
// 结果:Array()
####### MagicGetArray
范例
范例01:
a := array((1, 2, 3), (4, 5, 6));
return MagicgetArray(a, 1, 2); // 返回a[1][2]的数据
结果:6
范例02:
a := array((1, 2, 3), (4, 5, array(3, 4)));
return MagicgetArray(a, array(1, 2)); // 返回a[1][2]的数据
参考MagicSetArray
####### RecordExist
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := array(1, 2, 12, 3, 14);
return RecordExist(t, 12);
// 结果:2
####### RecordExist2
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':3));
return RecordExist2(t1, 'b', 3);
// 结果:2
####### RecordExist3
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := array(1, 2, 12, 3, 14);
return RecordExist3(t, 3);
// 结果:1
####### FieldNamesOfStrSubscript
用途:进行字符串提取或替换处理。 参数:
返回:处理后的结果值。
范例
s := `array('a':(1, 2, 3, 4, 5), 'b': (2, 3, 4, 5, 6), 'c': (3, 4, 5, 6, 7), 'd': (4, 5, 6, 7, 8));
return FieldNamesOfStrSubscript(s);
返回:
####### StrSubscriptTableToNormal
用途:进行字符串提取或替换处理。 参数:
返回:处理后的结果值。
范例
// 把字符串行标变成自然数序列的行标
t := array("a":(1, 2, 3), "b":(4, 5, 6), "c":(7, 8, 9));
return StrSubscriptTableToNormal(t, '序号');
把字符串行标
变成自然数序列行标,原行标值放在fn对应的列中:
####### FieldCountOfStrSubscript
用途:进行字符串提取或替换处理。 参数:
返回:整数。
范例
s := `array('a':(1, 2, 3, 4, 5), 'b':(2, 3, 4, 5, 6), 'c':(3, 4, 5, 6, 7), 'd':(4, 5, 6, 7, 8));
return FieldCountOfStrSubscript(s);
// 返回:4
####### argmax
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
x := array(9, 8, 10);
return argmax(x); // 2
####### Argmin
范例
x := array(3, 1, 9, 2);
return argmin(x); // 1
####### PasswordGen
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
return rdo2 PasswordGen(8, 5, 'ts', 3);
返回:
数组下标以及长度相关函数
####### 内容
- GetStrIndexNum
- GetStrIndexs
- GetIntIndexs
- GetAllIndexs
- DeleteIndex
- DeleteField
- Length
####### GetStrIndexNum
用途:数组相关函数。 参数:
返回:整数。
范例
arr := array("a1":1, "a2":2, 1:3);
return GetStrIndexNum(arr);
// 输出:2
####### GetStrIndexs
用途:数组相关函数。 参数:
返回:整数。
范例
arr := array("a1":1, "a2":2, "a3":3);
return GetStrIndexs(arr);
// 输出:array(“a1”,”a2”,”a3”)。
参考GetIntIndexs GetAllIndexs
####### GetIntIndexs
范例
arr := array(1:"p1", 2:"p2", 3:"p3", "a4":"p4");
return Getintindexs(arr);
// 输出:array(1,2,3)
参考GetStrIndexs GetAllIndexs
####### GetAllIndexs
用途:数组相关函数。 参数:
返回:整数。
范例
arr := array("p1":1, "p2":2, "p3":3);
return GetAllIndexs(arr); // 输出:array(“p1”,”p2”,”p3”)
参考GetStrIndexs GetIntIndexs
####### DeleteIndex
用途:数组相关函数。 参数:
返回:整数。
范例
arr := array("p1":1, "p2":2, "p3":3);
result := DeleteIndex(arr, "p2", 1);
return result; // true
return arr;
// array(“p1”:1,”p3”:3)
参考DeleteField
####### DeleteField
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
arr := array(("p1":1, "p2":2, "p3":3), ("p1":4, "p2":5, "p3":6));
result := DeleteField(arr, "p2", 1);
return arr; // array(("p1":1,"p3":3), ("p1":4"p3":6))
参考DeleteIndex
####### Length
用途:数组相关函数。 参数:
返回:整数。
范例
arr := array(("p1":1, "p2":2, "p3":3), ("p1":4, "p2":5, "p3":6));
return length(arr);
// 2
排序函数
####### 内容
- RankIt
- RankIt2
- RPSIt
- SortTableByFieldExt
- RankValue
- SortArray
- SortTableByField
- argsort
####### RankIt
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33));
RankIt(t2, 'c', 1);
return t2;
####### RankIt2
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33));
RankIt2(t2, 'c', '名次', 1);
return t2;
####### RPSIt
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
获得沪深300的成分股,并计算EndT的涨幅,对涨幅排序后返回其排序百分比。
Endt := inttodate(20140401);
SetSysParam(PN_Date(), EndT);
stockArr := GetBKByDate('SH000300', EndT);
r := array();
n := 0;
for nI := 0 to length(StockArr) - 1 do
begin
stockID := StockArr[nI];
setsysparam(pn_stock(), StockID);
if not istradeday(EndT) then continue;
r[n]['StockID'] := StockID;
r[n]['StockName'] := StockName(StockID);
r[n]['StockZF'] := stockzf3();
n++;
end;
return RPSIt(r, 'StockZF', 1);
部分结果截图:
####### SortTableByFieldExt
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
s := `array('a':(1, 2, 3, 4, 5), 'b':(-2, -3, -4, 5, 6), 'c':(3, 4, 5, 6, 7), 'd':(4, 5, 6, 7, 8));
return SortTableByFieldExt(s, 'b');
返回:
####### RankValue
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例取上证50的成分股,获得涨幅之后,对涨幅进行排名
stockArr := getbkbydate('SH000016', 20190201T);
s := select ['StockID'] as'代码',
["StockName"] as"名称",
['price'] as'收盘',
stockzf(['date'], ['date']) as'涨幅(%)'
from markettable datekey 20190201T to 20190201T of stockArr end;
RankValue(s, '涨幅(%)');
return s;
结果:
####### SortArray
范例
arr := array(1, 6, 3);
sortArray(arr);
return arr;
// array(1,3,6)
参考SortTableByField
####### SortTableByField
范例
arr := array(("p1":1, "p2":2, "p3":3),
("p1":4, "p2":5, "p3":6),
("p1":66, "p2":200, "p3":36),
("p1":30, "p2":500, "p3":40));
sortTableByField(arr, "p1", 1);
// sortdi=1按”p1”正序,sortdi=0反序
return arr;
// 结果如图所示
参考SortArray
####### argsort
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
value := array(4, 8, 2, 3, 9);
return argsort(value); // 返回:array(2,3,0,1,4)
增删改查
####### 内容
- AppendArray
- SeekPosInArray
- StockAmount
- DeleteNILValueByField
- FilterIn
- FilterNotIn
- IN1
- searchsorted
- argconfirst
- DeleteColumnByField
- Inserttablebyrno
- GetValuesByFieldValue
- Arrayextend
- Arrayinsert
- Frameinsert
####### AppendArray
范例
a := array(1, 2, 3);
AppendArray(a, 4);
return a;
返回:
####### SeekPosInArray
算法
确定查找范围L=0,H=N-1,计算中项J=(L+H)/2。
若arr[mid]=r或L>=H,则结束查找;否则,向下继续。
若arr[mid]<r,说明待查找的元素值只可能在比中项元素大的范围内,则把mid+1的值赋给L,并重新计算mid,转去执行步骤2;若arr[mid]>r,说明待查找的元素值只可能在比中项元素小的范围内,则把mid-1的值赋给H,并重新计算mid,转去执行步骤2。范例
return SeekPosInArray(4, array(1, 2, 3, 4, 5));
// 返回:3
####### StockAmount
范例
// 平安银行2011年6月30日流通A股发生变动
SetSysParam(PN_Stock(), 'SZ000001');
t := InfoArray(16); // 股票.股本结构表
r1 := StockAmount(t, 20110630, 0, '变动日', '流通A股'); // Date当天
r2 := StockAmount(t, 20110630, 1, '变动日', '流通A股'); // Date之前
return array(r1, r2);
结果:array(3105358672.0,3105358511.0)
####### DeleteNILValueByField
算法对数组T字段fields的值进行遍历,如果检索到nil值,删除该行数据。范例
Tdata := array(array('time':1, 'price':7.78), array('time':2));
DeleteNILValueByField(Tdata, 'price');
return tdata;
返回:
####### FilterIn
范例
范例01:
// 过滤表a中列’a’的值在array(1,2,5)集中的结果
a := array(
("a":0, "b":0, "c":0),
("a":1, "b":0, "c":2),
("a":2, "b":1, "c":4),
("a":3, "b":1, "c":6),
("a":4, "b":2, "c":8),
("a":5, "b":2, "c":10),
("a":6, "b":3, "c":12));
return filterin(a, array(1, 2, 5), 'a');
范例02:
// 筛选满足过滤集中整行数据的子集
a := array();
for i := 0 to 15 do
begin
a[i]["a"] := i;
a[i]["b"] := i div 2;
a[i]["c"] := i * 2;
end;
return filterin(a, array(("a":2, "b":1, "c":4), ("a":3, "b":1, "c":4)), nil);
范例03:
// 筛选满足过滤集中指定列数据的子集
a := array();
for i := 0 to 15 do
begin
a[i]["a"] := i;
a[i]["b"] := i div 2;
a[i]["c"] := i * 2;
end;
return filterin(a, array(("a":2, "b":1), ("a":3, "b":1)), array('a', 'b'));
范例04:
// 返回符合过滤集中指定列数据的行下标
a := array();
for i := 0 to 15 do
begin
a[i]["a"] := i;
a[i]["b"] := i div 2;
a[i]["c"] := i * 2;
end;
return filterin(a, array(("a":2, "b":1), ("a":3, "b":1)), array('a', 'b'), false);
范例05:
一维数组的过滤:
return FilterIn(array(1, -5, 10, 2, 10, 14, -5), array(2, 3, 10), nil);
返回结果:array(10,2,10)
####### FilterNotIn
范例用法同FilterIn
a := array();
for i := 0 to 5 do
begin
a[i]["a"] := i;
a[i]["b"] := i div 2;
a[i]["c"] := i * 2;
end;
b := array(1, 3, 5);
c1 := FilterNotIn(a, b, "a"); // 过滤结果
c2 := FilterNotIn(a, b, "a", false); // 过滤仅返回下标
return array(c1, c2);
c1结果:
c2结果:
二维数组中,过滤行运算示例:
t := array(
("a":0, "b":0, "c":0),
("a":1, "b":0, "c":2),
("a":2, "b":1, "c":4),
("a":2, "b":1, "c":4),
("a":4, "b":2, "c":8),
("a":4, "b":2, "c":8),
("a":6, "b":3, "c":12));
return filternotin(t, array(("a":2, "b":1, "c":4)), nil);
返回结果:过滤后保留重复行。
一维数组的过滤:
return FilterNotIn(array(1, -5, 10, 2, 10, 14, -5), array(2, 3, 10), nil);
返回结果:array(1,-5,14,-5)
####### IN1
范例
a := array(1, 2, 3, 4);
return in1(a, 3);
// 结果:1
####### searchsorted
范例
// 数字插入
v := array(1, 2, 3, 4, 5, 6);
return searchsorted(v, 3.5); // 返回:3
// 字符串插入
v := array("SH600001", "SH600004", "SH600050", "SH600305");
return searchsorted(v, "SH600049"); // 返回:2
####### argconfirst
范例
// 实数对比
a := 0 - > 9;
return argconfirst(a, 3.5, 1); // 返回:4
// 数组对比
a := array(("a", "A"), ("b", "B"), ("c", "C"), ("d", "D"));
v := array("b", "B");
return argconfirst(a, v, 6); // 返回:1
####### DeleteColumnByField
范例
t1 := array(('a':1, 'b':4, 'c':9), ('a':7, 'b':8, 'c':5));
return DeleteColumnByField(t1, 'a;b');
####### Inserttablebyrno
范例
范例1:
// 向一维数组指定位置插入一个字符串’aaa’
t := 43456 - > 43460;
Index := 2;
rData := 'aaa';
return InsertTablebyRno(t, Index, rData);
// 结果:array(43456,43457,"aaa",43458,43459,43460)
范例2:
// 向一维数组第3行插入多行的数据
t := 44000 - > 44004;
Index := 3;
rData := array('a', 'b', 'c');
return InsertTablebyRno(t, Index, rData);
// 结果:
array(44000, 44001, 44002, "a", "b", "c", 44003, 44004)
范例3:
// 向二维数组第3行插入多行的数据
t := array(('a':10, 'b':'i', 'c':datetostr(20200319T)),
('a':50, 'b':'i', 'c':datetostr(20200318T)),
('a':60, 'b':'i', 'c':datetostr(20200317T)),
('a':40, 'b':'o', 'c':datetostr(20200316T)),
('a':20, 'b':'o', 'c':datetostr(20200313T)));
Index := 3;
rData := array(('c':0, 'b':44000, 'a':'2020-03-20'));
return InsertTablebyRno(t, Index, rData);
// 结果:
范例4:
// 向二维数组第1行插入多行的数据
t := array(('a':10, 'b':'i', 'c':datetostr(20200319T)),
('a':50, 'b':'i', 'c':datetostr(20200318T)),
('a':60, 'b':'i', 'c':datetostr(20200317T)),
('a':40, 'b':'o', 'c':datetostr(20200316T)),
('a':20, 'b':'o', 'c':datetostr(20200313T)));
Index := 1;
rData := array(('c':'2020', 'b':'AAA', 'a':44456),
('c':'2020', 'b':'BBB', 'a':44566));
return InsertTablebyRno(t, Index, rData);
// 结果:
####### GetValuesByFieldValue
范例
t := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':4));
return GetValuesByFieldValue(t, 'b', 4); // 返’b’列值为4的所有记录
####### Arrayextend
范例
a := Letters(1 - > 6);
return arrayextend(a, 2, array('d', 'e'));
返回:array("A","B","d","e","C","D","E","F")
####### Arrayinsert
范例
a := Letters(1 - > 6);
return Arrayinsert(a, 2, 3);
返回:array("A","B",3,"C","D","E","F")
####### Frameinsert
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
data := load_dataset_iris();
return frameInsert(data, 1, '新列', 0);
数组操作
####### 内容
- OutPutTableToCanBeUnderstood
- SeperateTable
- Unitary
- Reverse
- DescartesJoin
- TableVectorizeArray
- DataProcess_MF
- AbnormalData
- QKsplit_Trailing
- QKsplit_Resampling
- WebFormatToRung
- RPSValue
- ZValue
- QKsplit_ToDate
- GroupByFieldValue
- FilterOneDimEx2
- GroupRankIt
- ElementWhere
- Histogram
- FrameGetSubByReg
- Factorize
- GroupPercentrankIt
- SparseMatFill
- ArrayAddGap
- dumies_decode
- GroupTransformByFunc
- Framedrop_duplicates
- Field_ReSortCols
- Framedrop_na
- Framemerge
- Frameqcut
- Frameupdate
- GroupZscoreIt
- get_dummies
- get_dummies2
- framePivot_table
- framecut
- frameMelt
- GroupDemeanIt
- ArrDropDuplicate
####### OutPutTableToCanBeUnderstood
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
return OutPutTableToCanBeUnderstood(array(1, 2, 3));
返回:
####### SeperateTable
用途:数组相关函数。 参数:
返回:处理后的结果值。
算法
依据字段SepField排序,若字段不存在则返回空数组。
若分割数大于行数,则每行单独生产一个子表;若分割数小于行数,则按int(行数/分割数)去合并表行数,超出部分单作为一个子表。范例
t := `array('a':(1, 2, 3, 4), 'b':(2, 3, 4, 5), 'c':(3, 4, 5, 6), 'd':(4, 5, 6, 7), 'e':(5, 6, 7, 8), 'f':(7, 8, 9, 10));
return SeperateTable(t, 'a', 2);
返回:
####### Unitary
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := `array('a':(1, 2, 3, 4), 'b':(2, 3, 4, 5), 'c':(3, 4, 5, 6), 'd':(4, 5, 6, 7), 'e':(5, 6, 7, 8), 'f':(7, 8, 9, 10));
Unitary(t, 'b', 0, 10);
return t;
返回:
####### Reverse
范例
// 倒置数组
setsysparam(pn_stock(), "SZ000002");
setsysparam(pn_date(), 20210601t);
arr := nday(10, "date", datetostr(sp_time()), "close", close());
return reverse(arr);
####### DescartesJoin
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
return DescartesJoin(1 - > 3, 21 - > 22, 3);
####### TableVectorizeArray
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := ones(10, 3);
s := array(1, 2, 3);
return TableVectorizeArray(t, s, '-');
####### DataProcess_MF
用途:数组相关函数。 参数:
返回:处理后的结果值。
算法
四分位法:上边界=中位数+5.2medianof(abs(yi-中位数)),下边界=中位数-5.2medianof(abs(yi-中位数)),其中medianof表示求序列中位数。超出上边界的数改为上边界,低于下边界的数改为下边界。
3倍标准差法:上边界=μ+3σ,下边界=μ-3σ,其中u表示均值,σ表示标准差。超出上边界的数改为上边界,低于下边界的数改为下边界。范例
t := `array(array(1, 100, 101, 102, 103, 1000), array(2, 200, 201, 202, 203, 2000));
return DataProcess_MF(t, 'median');
返回:
####### AbnormalData
用途:数组相关函数。 参数:
返回:处理后的结果值。
算法
中位数法:上边界=中位数+5.2medianof(abs(yi-中位数)),下边界=中位数-5.2medianof(abs(yi-中位数)),其中medianof表示求序列中位数。超出上边界的数改为上边界,低于下边界的数改为下边界。
3倍标准差法:上边界=μ+3σ,下边界=μ-3σ,其中u表示均值,σ表示标准差。超出上边界的数改为上边界,低于下边界的数改为下边界。
四分位法:左边界=14位数-1.5*(中位数-14位数),下边界=34位数+1.5*(34位数-中位数),。超出右边界的数改为右边界,低于左边界的数改为左边界。
范例
范例01:返回奇异值的位置及处理后的结果。
t := array(1, 100, 101, 102, 103, 1000);
AbnormalData(t, "median", r);
return r;
返回:
其中,0和5为修改的行,1和1000是对应的原值,93.7和109.3是修改后的值
范例02:对源数据列增加一列奇异值处理后的结果
col := 'SH000001';
setsysparam(pn_stock(), col);
setsysparam(pn_date(), 20240930T);
setsysparam(pn_cycle(), cy_day());
days := 100;
// SH000001在20240930最近100天的行情数据中设置三个奇异值
t := Nday(days, '日期', datetostr(sp_time()), col, close());
t[29, col] := 1500;
t[59, col] := 4500;
t[79, col] := 6000;
// 找到数组指定列奇异值,以中位数法为例
tyc := AbnormalData(t[:, col], "median", abn);
t[:, col$"_奇异值处理"] := tyc;
return t;
返回结果:增加列"SH000001_奇异值处理"
####### QKsplit_Trailing
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
return QKsplit_Trailing(20100101T, 20110101T);
####### QKsplit_Resampling
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
return QKsplit_Resampling(20100101T, 20110101T, cy_year());
####### WebFormatToRung
用途:按指定格式输出结果。 参数:
返回:处理后的结果值。
范例
a := array('a':('b':('c':(nil, nan, 3), 'd':2), 'e':nan));
return WebFormatToRung(a); // array("a":("b":("c":("-","-",3),"d":2),"e":"-"))
####### RPSValue
用途:数组相关函数。 参数:
返回:处理后的结果值。
算法
指定字段从大到小排序。
RPS=100-100/(数据总数量-1)*所在行标。范例
stockArr := getbkbydate('SH000016', 20190201T);
s := select ['StockID'] as'代码',
["StockName"] as"名称",
['price'] as'收盘',
stockzf(['date'], ['date']) as'涨幅(%)'
from markettable datekey 20190201T to 20190201T of stockArr end;
RPSValue(s, '涨幅(%)');
return s;
返回:
####### ZValue
用途:数组相关函数。 参数:
返回:处理后的结果值。
算法
z=(x-μ)/σ;其中z为标准分数;x为某一具体分数,μ为平均数,σ为标准差。范例
stockArr := getbkbydate('SH000016', 20190201T);
s := select ['StockID'] as'代码',
["StockName"] as"名称",
['price'] as'收盘',
stockzf(['date'], ['date']) as'涨幅(%)'
from markettable datekey 20190201T to 20190201T of stockArr end;
ZValue(s, '涨幅(%)');
return s
返回:
####### QKsplit_ToDate
用途:日期时间处理函数。 参数:
返回:日期或时间值。
范例
return QKsplit_ToDate(20220704T);
####### GroupByFieldValue
用途:数组相关函数。 参数:
返回:处理后的结果值。
算法
依据字段GroupField值进行排序
划分四个区间,小于等于最小值,最小值到最大值之间的每一个步长区间(包括步长末值),临近最大值不足一个步长的区间(包括最大值),大于最大值区间。用FilterTableEx函数来统计指定区间的数量。范例
data := select * from tradetable datekey 20180903t to 20180904T of'sz000001'end;
return GroupByFieldValue(data, 'close', 1, 20, 0.1);
返回:
####### FilterOneDimEx2
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
s := array(1, 2, 3, 4, 5, 6);
return FilterOneDimEx2(s, 4);
// 返回:4
####### GroupRankIt
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
T := array(
("G":1, "V1":1, "V2":11, "V3":21),
("G":0, "V1":2, "V2":12, "V3":22),
("G":1, "V1":3, "V2":13, "V3":23),
("G":0, "V1":4, "V2":14, "V3":24),
("G":1, "V1":5, "V2":15, "V3":25),
("G":0, "V1":6, "V2":16, "V3":26));
return GroupRankIt(T, 'G', 'V1'); // array(1,1,2,2,3,3)
####### ElementWhere
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
con := array(1, 0, 1, 1, 1, 0);
x := array(1, 2, 3, 4, 5, 6);
y := array(11, 12, 13, 14, 15, 16);
return ElementWhere(con, x, y); // array(1,12,3,4,5,16)
####### Histogram
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
范例一:
return Histogram(Randn(0, 1, 1000), array(-3, 0.5) - > 3, '0.00');
范例二:
data := randn(0, 1, 1000, array('a', 'b'));
return Histogram(data, array(-3, 0.5) - > 3, '0.00');
####### FrameGetSubByReg
范例
T := array((13:1, "V1":1, "V2":11, 12:21, 'R1w':1),
(13:0, "V1":2, "V2":12, 12:22, 'R1w':1),
(13:1, "V1":3, "V2":13, 12:23, 'R1w':1),
(13:0, "V1":4, "V2":14, 12:24, 'R1w':1),
(13:1, "V1":5, "V2":15, 12:25, 'R1w':1),
(13:0, "V1":6, "V2":16, 12:26, 'R1w':1));
return frameGetSubByReg(T, '1');
array(
(21,1,"V1":1,"R1w":1),
(22,0,"V1":2,"R1w":1),
(23,1,"V1":3,"R1w":1),
(24,0,"V1":4,"R1w":1),
(25,1,"V1":5,"R1w":1),
(26,0,"V1":6,"R1w":1))
####### Factorize
范例
value := array('a', 'd', 'c', 'a', 'b');
labels := factorize(value, true, -1, uniques);
echo uniques; // array("a","b","c","d")
return labels; // array(0,3,2,0,1);
####### GroupPercentrankIt
用途:进行大小写转换。 参数:
返回:处理后的结果值。
范例
T := array(("G":1, "V1":1, "V2":11, "V3":21),
("G":0, "V1":2, "V2":12, "V3":22),
("G":1, "V1":3, "V2":13, "V3":23),
("G":0, "V1":4, "V2":14, "V3":24),
("G":1, "V1":5, "V2":15, "V3":25),
("G":0, "V1":6, "V2":16, "V3":26));
return GroupPercentrankIt(T, 'G', 'V1'); // array(0.0,0.0,0.5,0.5,1.0,1.0)
####### SparseMatFill
用途:解析输入并返回结果。 参数:
返回:处理后的结果值。
范例
a := array((3:4), ('A':2));
SparseMatFill(a, -1);
return a; // array((3:4,"A":-1),(3:-1,"A":2))
####### ArrayAddGap
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
a := array('alpha(%)':3);
ArrayAddGap(a, '风险');
a['beta'] := 3;
return a; // array("alpha(%)":3,"-----风险-----":"----------","beta":3)
####### dumies_decode
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
data := array(
("申万房地产":1, "申万有色金属":0, "申万银行":0),
("申万房地产":1, "申万有色金属":0, "申万银行":0),
("申万房地产":0, "申万有色金属":1, "申万银行":0),
("申万房地产":0, "申万有色金属":0, "申万银行":1),
("申万房地产":0, "申万有色金属":1, "申万银行":0));
return dumies_decode(data);
// array("申万房地产","申万房地产","申万有色金属","申万银行","申万有色金属")
####### GroupTransformByFunc
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
T := array(("G":1, "V1":1, "V2":11, "V3":21),
("G":0, "V1":2, "V2":12, "V3":22),
("G":1, "V1":3, "V2":13, "V3":23),
("G":0, "V1":4, "V2":14, "V3":24),
("G":1, "V1":5, "V2":15, "V3":25),
("G":0, "V1":6, "V2":16, "V3":26));
fp := function (v, g);
begin
return rankof([v], [v]);
end;
return GroupTransformByFunc(T, 'G', 'V1', fp); // array(3,3,2,2,1,1)
####### Framedrop_duplicates
范例
data := load_dataset_iris();
return frameDrop_duplicates(data, 'Species', 'f', '原下标');
####### Field_ReSortCols
范例
范例01
data := TSUT_Data_ZSZF();
colpriority := array('截止日':-1, "中证500":100);
return field_resortcols(data, colpriority);
####### Framedrop_na
范例
data := array((nan, 8), (1, 3, 3));
return frameDrop_Na(data, 1, 0);
####### Framemerge
范例
范例1:
left := `array('a':3 - > 5, 'b':rand(3));
right := `array('a':1 - > 4, 'b':rand(4), 'c':rand(4) * 10);
return frameMerge(left, right, 'a');
范例2
// 多字段merge
left := `array('a':3 - > 5, 'b':rand(3));
left[:, 'c'] := left[:, 'a'];
right := `array('a':1 - > 4, 'b':rand(4), 'c':rand(4) * 10);
right[:, 'c'] := right[:, 'a'];
names := array('a', 'c');
return frameMerge(left, right, name, 'lfet', nil, true);
范例3
// 只更名right
left := `array('a':3 - > 5, 'b':rand(3));
right := `array('a':1 - > 4, 'b':rand(4), 'c':rand(4) * 10);
return frameMerge(left, right, 'a', 'full', array(nil, '_x'));
####### Frameqcut
- OutPutTableToCanBeUnderstood
- SeperateTable
- Unitary
- Reverse
- DescartesJoin
- TableVectorizeArray
- AbnormalData
- DataProcess_MF
- ZValue
- RPSValue
- FilterOneDimEx2
- GroupByFieldValue
- WebFormatToRung
- QKsplit_Trailing
- QKsplit_ToDate
- QKsplit_Resampling
- Factorize
- dumies_decode
- SparseMatFill
- ElementWhere
- ArrayAddGap
- GroupPercentrankIt
- GroupRankIt
- GroupTransformByFunc
- FrameGetSubByReg
- Histogram
- Framedrop_duplicates
- Field_ReSortCols
- Framedrop_na
- Framemerge
- Frameqcut
- Frameupdate
- GroupZscoreIt
- get_dummies
- get_dummies2
- framePivot_table
- framecut
- frameMelt
- GroupDemeanIt
- ArrDropDuplicate
####### Frameupdate
范例
left := `array('a':3 - > 5, 'b':rand(3));
right := `array('a':1 - > 4, 'b':rand(4), 'c':rand(4) * 10);
return frameUpdate(left, right, 'a');
####### GroupZscoreIt
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
T := array(
("G":1, "V1":1, "V2":11, "V3":21),
("G":0, "V1":2, "V2":12, "V3":22),
("G":1, "V1":3, "V2":13, "V3":23),
("G":0, "V1":4, "V2":14, "V3":24),
("G":1, "V1":5, "V2":15, "V3":25),
("G":0, "V1":6, "V2":16, "V3":26));
return GroupZscoreIt(T, 'G', 'V1');?// array(-1.0,-1.0,0.0,0.0,1.0,1.0)
####### get_dummies
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
a := array('a', 'b', 'c', 'a', nan, nil);
t := get_dummies(a, uniques);
echo tostn(uniques); // array(NIL,"a","b","c",NAN)
return t;
####### get_dummies2
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
b := array("申万房地产", "申万房地产", "申万有色金属", "申万银行", "申万有色金属");
return get_dummies2(b);
####### framePivot_table
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 指定条件,首列为申万行业,后续列标为日期,按平均值汇总值为涨幅、振幅的的数据透视表数据
stocks := GetBKByDate("SH000010", 20210525t);
begt := 20210515T;
endt := 20210525T;
t := select ['StockID'] as"代码",
["StockName"] as"名称",
datetostr(['date']) as"日期",
["close"] as"收盘价",
spec(specdate(stockzf3(), ['date']), ['StockID']) as"涨幅",
spec(specdate(stockzdf3(), ['date']), ['StockID']) as"振幅",
spec(base(10029), ['StockID']) as"申万行业"
from markettable datekey begt to endt of stocks end;
index := "申万行业";
colunms := "日期";
vals := array("涨幅", "振幅");
aggfunc := "avg";
return framePivot_table(t, index, colunms, vals, aggfunc);
####### framecut
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
范例1:
a := array(0, 59, 60, 70, 80, 99, 100);
bins := array(60, 80);
return framecut(a, bins, 0);
// array(0,0,1,1,2,2,2)
范例2
a := array(0, 59, 60, 70, 80, 99, 100);
bins := 5;
return framecut(a, bins, 0);
// array(0,2,3,3,4,4,4)
####### frameMelt
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := array(
('截止日':20210101, 'SH000300':1, 'SH000301':3),
('截止日':20210102, 'SH000300':9, 'SH000301':2),
);
ID_names := array('截止日');
return frameMelt(t, '截止日', nil, '代码', '得分');
####### GroupDemeanIt
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
范例1:
T :=
array(
("G":1, "V1":1, "V2":11, "V3":21),
("G":0, "V1":2, "V2":12, "V3":22),
("G":1, "V1":3, "V2":13, "V3":23),
("G":0, "V1":4, "V2":14, "V3":24),
("G":1, "V1":5, "V2":15, "V3":25),
("G":0, "V1":6, "V2":16, "V3":26));
return GroupDemeanIt(T, 'G', 'V1'); // array(-2.0,-2.0,0.0,0.0,2.0,2.0)
范例2
T := array(
("G":1, "V1":1, "V2":11, "V3":21),
("G":0, "V1":2, "V2":12, "V3":22),
("G":1, "V1":3, "V2":13, "V3":23),
("G":0, "V1":4, "V2":14, "V3":24),
("G":1, "V1":5, "V2":15, "V3":25),
("G":0, "V1":6, "V2":16, "V3":26));
return GroupDemeanIt(T, 'G', array('V1', 'V2'));
####### ArrDropDuplicate
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
data := array(("A":1, "B":NAN), ("A":1, "B":2), ("A":1, "B":NAN), ("A":1, "B":2));
return ArrDropDuplicate(data);
// 结果:array(("A":1,"B":NAN),("A":1,"B":2))
数组取值
####### 内容
- ColumnValue
- GetSubTableByField
- GetTopN
- FilterTableEx
- ColumnValue2
- GetBottomN
- FilterOneDimEx
- GetDistinctValue
- GetMiddleN
- FilterTable
- GetSubField
- GetSubTable
- Arraygetdefault
- Arraysetdefault
- Arraysetdefault2
- Randomchoice
####### ColumnValue
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
s := select ['StockID'] as'代码',
["StockName"] as"名称",
['price'] as'收盘'
from markettable datekey 20190101T to 20190201T of'SZ000001'end;
return ColumnValue(s, '收盘');
返回:
####### GetSubTableByField
用途:进行字符串提取或替换处理。 参数:
返回:处理后的结果值。
范例
setsysparam(pn_stock(), 'SZ000001');
r := nday(10, 'time', datetostr(sp_time()), 'close', close(), 'open', open(), 'high', high());
return GetSubTableByField(r, 'time;close');
// 功能相当于使用子矩阵取数
return r[:, array('time', 'close')];
返回:
####### GetTopN
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':33));
return GettopN(t2, 2);
####### FilterTableEx
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33));
return FilterTableEx(t2, 'c', 'IN', 13, 30); // 取13<=[ 'c']<=30
####### ColumnValue2
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'b':2, 'c':13), ('a':3, 'c':33, 'b':3), ('a':3, 'b':6, 'c':43), ('a':5, 'c':53, 'b':5));
return ColumnValue2(t2, 'a;c');
####### GetBottomN
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':33));
return GetBottomN(t2, 2);
####### FilterOneDimEx
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := array(1, 2, 12, 3.7, 14);
return FilterOneDimEx(t, 'IN', 2, 7);
####### GetDistinctValue
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return GetDistinctValue(t2, 'a');
####### GetMiddleN
用途:数组相关函数。 参数:
返回:整数。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':4, 'c':33), ('a':5, 'c':33));
return GetMiddleN(t2, 2, 3);
####### FilterTable
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 'SZ002664'在20211231时的分红送股数据
setsysparam(pn_stock(), 'SZ002664');
return FilterTable(Infoarray(18), 20211231);
####### GetSubField
用途:进行字符串提取或替换处理。 参数:
返回:处理后的结果值。
范例
a := array(('a':8, 'b':7), ('a':6, 'b':9));
return GetSubField(a, 'a'); // 从a表中取第’a列’
####### GetSubTable
用途:进行字符串提取或替换处理。 参数:
返回:处理后的结果值。
范例
a := array((1, 2, 4), (11, 12, 14));
b := array(0, 2);
return GetSubTable(a, b);
####### Arraygetdefault
- ColumnValue
- GetSubTableByField
- FilterTableEx
- GetBottomN
- GetMiddleN
- GetTopN
- FilterOneDimEx
- GetDistinctValue
- ColumnValue2
- FilterTable
- GetSubField
- GetSubTable
- Arraygetdefault
- Arraysetdefault
- Arraysetdefault2
- Randomchoice
####### Arraysetdefault
- ColumnValue
- GetSubTableByField
- FilterTableEx
- GetBottomN
- GetMiddleN
- GetTopN
- FilterOneDimEx
- GetDistinctValue
- ColumnValue2
- FilterTable
- GetSubField
- GetSubTable
- Arraygetdefault
- Arraysetdefault
- Arraysetdefault2
- Randomchoice
####### Arraysetdefault2
- ColumnValue
- GetSubTableByField
- FilterTableEx
- GetBottomN
- GetMiddleN
- GetTopN
- FilterOneDimEx
- GetDistinctValue
- ColumnValue2
- FilterTable
- GetSubField
- GetSubTable
- Arraygetdefault
- Arraysetdefault
- Arraysetdefault2
- Randomchoice
####### Randomchoice
- ColumnValue
- GetSubTableByField
- FilterTableEx
- GetBottomN
- GetMiddleN
- GetTopN
- FilterOneDimEx
- GetDistinctValue
- ColumnValue2
- FilterTable
- GetSubField
- GetSubTable
- Arraygetdefault
- Arraysetdefault
- Arraysetdefault2
- Randomchoice
集合运算
####### 内容
- MergeArray
- FilterIntersectionPart
- FilterIntersectionPart2
- DistinctStr
- IntersectionPart
- QuickIntersectionPart
- Frameconcat
####### MergeArray
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('b':12, 'a':1, 'c':13, 'd':'d'));
t2 := array(('a':2, 'b':22, 'c':23, 'e':'ee'));
t3 := array(('a':2, 'b':22, 'd':23, 'e':'ee'));
return MergeArray(t1, t2, t3); // 将数组t1,t2,t3合并
####### FilterIntersectionPart
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':10, 'c':13), ('a':2, 'b':17, 'c':13));
t2 := array(('a':2, 'b':22, 'c':23), ('a':1, 'b':14, 'c':13), ('a':3, 'b':12, 'c':13));
return FilterIntersectionPart(t1, t2, 'a', 'IN'); // t1 与t2的交集
####### FilterIntersectionPart2
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(1, 2, 3, 4);
t2 := array(3, 4, 5, 6);
return FilterIntersectionPart2(t1, t2, 'IN'); // t1 与t2的交集
####### DistinctStr
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
a := array('w', 'd', 'f', 'd', 'e');
return DistinctStr(a); // 保留不相同的,相同的只保留一个
####### IntersectionPart
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(1.00, 3.00, 2.00, 9.00, 8.00);
t2 := array(3.00, 0.00, 7.00, 8.00, 1.00, 5.00);
return IntersectionPart(t1, t2);
####### QuickIntersectionPart
范例
t1 := array(1.00, 3.00, 2.00, 9.00, 8.00);
t2 := array(3.00, 0.00, 7.00, 8.00, 1.00, 5.00);
return IntersectionPart(t1, t2);
####### Frameconcat
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
a := ones(3, 3);
b := ones(2, 3);
return frameConCat(array(a, b));
统计函数
####### 内容
- GeoMeanByColumn
- SumValueByColumn
- AverageValueByColumn
- PercentValueByField
- MedianByColumn
- VarByColumn
- SumValueByColumn2
- SkewByColumn
- AveDevByColumn
- SumValueByRow2
- MaxValueByColumn
- DevsqByColumn
- KurtByColumn
- SumValueByRow
- HarMeanByColumn
- StatByColumn
- AverageByColumn
- StdevByColumn
- MinValueByColumn
- Describe
- Framecorrel
- Framecov
- Framehhi
- Framelag_zf
- Framepct_change
- Framevaluecounts
- Simpledescribe
####### GeoMeanByColumn
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4, 'c':9), ('a':7, 'b':5, 'c':5));
return GeoMeanByColumn(t1, 'b');
// 结果:4.47
####### SumValueByColumn
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4, 'c':9), ('a':7, 'b':8, 'c':5));
return SumValueByColumn(t1, 'b');
// 结果:12
####### AverageValueByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return AverageValueByColumn(t2, 'c', 1, 3);
// 结果:43
####### PercentValueByField
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return PercentValueByField(t2, 'c', 0.1);
// 结果:19
####### MedianByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return MedianByColumn(t2, 'c');
// 结果:38
####### VarByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return VarByColumn(t2, 'c');
// 结果:291.67
####### SumValueByColumn2
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return SumValueByColumn2(t2, 'c', 1, 2);
// 结果:76
####### SkewByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return SkewByColumn(t2, 'c');
// 结果:-0.75
####### AveDevByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return AveDevByColumn(t2, 'c');
// 结果:12.5
####### SumValueByRow2
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return SumValueByRow2(t2, 1, 0, 1);
// 结果:36
####### MaxValueByColumn
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return MaxValueByColumn(t2, 'c');
// 结果:53
####### DevsqByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4, 'c':9), ('a':7, 'b':5, 'c':5));
return DevsqByColumn(t1, 'b');
// 结果:0.5
####### KurtByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return KurtByColumn(t2, 'c');
// 结果:0.34
####### SumValueByRow
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return SumValueByRow(t2, 2);
// 结果:46
####### HarMeanByColumn
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4, 'c':9), ('a':7, 'b':5, 'c':5));
return HarMeanByColumn(t1, 'b');
// 结果:4.44
####### StatByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
s := `array('a':(1, 2, 3, 4, 5), 'b': (-2, -3, -4, 5, 6), 'c': (3, 4, 5, 6, 7), 'd': (4, 5, 6, 7, 8));
return StatByColumn(s, 'a', 'MAX');
// 返回a列最大值:5
####### AverageByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4, 'c':9), ('a':7, 'b':8, 'c':5));
return AverageByColumn(t1, 'b');
// 结果:6
####### StdevByColumn
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return StdevByColumn(t2, 'c');
// 结果:17.08
####### MinValueByColumn
用途:进行数值统计计算。 参数:
返回:处理后的结果值。
范例
t2 := array(('a':2, 'c':13), ('a':3, 'c':33), ('a':3, 'c':43), ('a':5, 'c':53));
return MinValueByColumn(t2, 'c');
// 结果:13
####### Describe
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
范例01:
load_dataset_iris(data);
return Describe(data);
范例02:
return Describe(randn(0, 1, 1000), array(0.05, 0.1) - > 0.95);
####### Framecorrel
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
data := TSUT_Data_ZSZF()[:, 1:];
return frameCorrel(data);
####### Framecov
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
data := TSUT_Data_ZSZF()[:, 1:];
return frameCov(data);
####### Framehhi
- SumValueByColumn
- SumValueByColumn2
- SumValueByRow
- SumValueByRow2
- MaxValueByColumn
- MinValueByColumn
- AverageValueByColumn
- AverageByColumn
- HarMeanByColumn
- GeoMeanByColumn
- DevsqByColumn
- KurtByColumn
- MedianByColumn
- SkewByColumn
- StdevByColumn
- VarByColumn
- AveDevByColumn
- PercentValueByField
- StatByColumn
- Describe
- Framecorrel
- Framecov
- Framehhi
- Framelag_zf
- Framepct_change
- Framevaluecounts
- Simpledescribe
####### Framelag_zf
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := array(10, 5, 8, 2);
return frameLag_ZF(t); // array(INF,-50.0,60.0,-75.0)
return frameLag_ZF(t, -1); // array(-50.0,60.0,-75.0,INF)
####### Framepct_change
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := array(10, 5, 8, 2);
return framePct_change(t); // array(INF,-50.0,60.0,-75.0)
return framePct_change(t, -1); // array(100.0,-37.5,300.0,INF); // 注意此时并不是未来涨幅
####### Framevaluecounts
- SumValueByColumn
- SumValueByColumn2
- SumValueByRow
- SumValueByRow2
- MaxValueByColumn
- MinValueByColumn
- AverageValueByColumn
- AverageByColumn
- HarMeanByColumn
- GeoMeanByColumn
- DevsqByColumn
- KurtByColumn
- MedianByColumn
- SkewByColumn
- StdevByColumn
- VarByColumn
- AveDevByColumn
- PercentValueByField
- StatByColumn
- Describe
- Framecorrel
- Framecov
- Framehhi
- Framelag_zf
- Framepct_change
- Framevaluecounts
- Simpledescribe
####### Simpledescribe
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
范例01
load_dataset_iris(data);
return SimpleDescribe(data);
范例02
return SimpleDescribe(randn(0, 1, 1000), array(0.05, 0.1) - > 0.95);
重构函数
####### 内容
- NormalTabletoStrSubscript
- RenameField
- Field_AddSuffix
- RenameFieldByFormat
- Field_AddPrefix
- ReIndex
- ReIndexCopy
- Reshape
- Frame_addprefix
- Frame_addsuffix
####### NormalTabletoStrSubscript
用途:将输入值转换为字符串。 参数:
返回:字符串。
范例
s := nday(10, 'time', datetostr(sp_time()), 'close', close());
return NormalTabletoStrSubscript(s, 'time');
把 time列的数据变为行标
---变为--》
####### RenameField
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4, 'c':9), ('a':7, 'b':8, 'c':5));
return RenameField(t1, 'a', 'aaa'); // 将t1中的字段’a’改为’aaa’
// 结果:1
####### Field_AddSuffix
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 给随机数组批量加后缀
T := rand(10, 10);
Suffix := "@A";
Ifcopy := true;
return Field_AddSuffix(t, Suffix, Ifcopy);
####### RenameFieldByFormat
用途:按指定格式输出结果。 参数:
返回:处理后的结果值。
范例
// 给随机数组批量加后缀
T := rand(10, 10);
Suffix := '%s'$"@A";
Ifcopy := true;
return RenameFieldByFormat(t, Suffix, Ifcopy);
####### Field_AddPrefix
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 给随机数组批量加前缀
T := rand(10, 10);
Suffix := "A";
Ifcopy := true;
return Field_AddPrefix(t, Suffix, Ifcopy);
####### ReIndex
用途:数组相关函数。 参数:
返回:整数。
范例
// 修改数字列名数组为字符串列名数组,即将0,1,2(自增数字)列名重构为"a","b","c"列名的数组
A := rand(10, 3);
s := array("a", "b", "c");
ReIndex(A, nil, s);
return A;
// 修改数字行标数组为字符串行标数组,即将0,1,2(自增数字)行标重构为"a","b","c"行标的数组
A := rand(3, 3);
s := array("a", "b", "c");
ReIndex(A, s);
return A;
// 通过设置行标为nil进行删除该行记录
A := array("A":0, "B":1, "D":2, "E":3);
ReIndex(A, array("A":"A1", "D":nil));
return A;
// 返回:array("A1":0,"B":1,"E":3);
// 如果我们要对多维数组进行处理
A := rand(10, array("A", "B", "D", "E"); // 初始化一个四列的二维矩阵
ReIndex(A, nil, array("A":"A1", "D":nil));
return A;
// 说明,第2个参数为nil表示对第一维的下标不进行变动,因此我们修改列"A"为"A1",并删除"D"列。
// 利用Reindex做列的交换
A := array(1, 2, 3, 4, 5);
reIndex(A, array(0:4, 4:0));
return A;
// 结果为array(5,2,3,4,1);
####### ReIndexCopy
参考ReIndex
范例
实现:将指定列下标转为数组的行下标--可用于快速建立哈希表
setsysparam(pn_stock(), "SH000001");
setsysparam(pn_date(), 20240822T);
t := nday(10, 'time', datetostr(sp_time()), 'close', close());
return reindexcopy(t, t[:, "time"]);
转化结果:
====》转变为:
####### Reshape
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 默认拉伸为一个一维数组
A := Rand(3, 6);
return B := Reshape(A);
// A 是一个4*3的矩阵,拉伸为一个2*6的矩阵
A := array((1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12));
return Reshape(A, 2, 6);
####### Frame_addprefix
- RenameField
- ReIndex
- ReIndexCopy
- Reshape
- NormalTabletoStrSubscript
- RenameFieldByFormat
- Field_AddSuffix
- Field_AddPrefix
- Frame_addprefix
- Frame_addsuffix
####### Frame_addsuffix
- RenameField
- ReIndex
- ReIndexCopy
- Reshape
- NormalTabletoStrSubscript
- RenameFieldByFormat
- Field_AddSuffix
- Field_AddPrefix
- Frame_addprefix
- Frame_addsuffix
稀疏矩阵
####### 内容
- Sparse1
- Sparse2
- Speye
- Sprand1
- Sprand2
- Sprandn1
- Sprandn2
- Sprandsym1
- Sprandsym2
- Sparsefull
- Spones
- Spnnz
- Spnonzeros
- Ifsparse
- Spdiags1
- Spdiags2
- Spdiags3
- Spdiags4
####### Sparse1
范例
// 将矩阵S由满矩阵格式转化为稀疏格式
S := array((0, 0, 4, 0, 0),
(0, 1, 0, 0, 0),
(0, 0, 0, 0, 0),
(3, 0, 0, 0, 0),
(0, 0, 0, 0, 5));
return sparse1(S);
####### Sparse2
范例
// 根据i,j,v三元组生成稀疏格式矩阵
i := array(0, 1, 2, 3);
j := array(3, 1, 4, 2);
v := array(5, 3, 2, 4);
return sparse2(i, j, v, 5, 5);
####### Speye
范例
// 创建m*m稀疏单位矩阵
A := speye(4);
return A;
####### Sprand1
范例
// 创建与矩阵S相同结构的稀疏均匀随机矩阵
S := array((0, 0, 3, 0, 0),
(0, 0, 0, 0, 0),
(0, 0, 0, 5, 0),
(0, 2, 0, 0, 0),
(0, 0, 0, 0, 4));
return sprand1(S);
####### Sprand2
范例
// 创建10*10稀疏均匀随机矩阵
A := sprand2(10, 10, 0.3);
return A;
####### Sprandn1
范例
// 创建与矩阵S相同结构的稀疏正态随机矩阵
S := array((0, 0, 0, 0, 0),
(0, 0, 0, 5, 0),
(3, 0, 0, 0, 0),
(0, 0, 2, 0, 0),
(0, 0, 0, 0, 4));
return sprandn1(S);
####### Sprandn2
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 创建10*10稀疏正态随机矩阵
A := sprandn2(10, 10, 0.2);
return A;
####### Sprandsym1
范例
// 创建与矩阵S相同结构的对称稀疏正态随机矩阵
S := array((6, 1, 0, 14, 0),
(0, 7, 0, 0, 15),
(1, 0, 8, 0, 0),
(0, 2, 0, 9, 0),
(0, 0, 3, 0, 10));
return sprandsym1(S);
####### Sprandsym2
范例
// 创建10*10对称稀疏正态随机矩阵
A := sprandnsym2(10, 0.2);
return A;
####### Sparsefull
范例
// 将S由稀疏格式矩阵转化为5*5满矩阵格式
S := array(0:(0:1), 2:(2:3), 3:(3:4));
return sparsefull(S, 5, 5);
####### Spones
范例
// 将S中非零元素替换为1
S := array(0:(0:1), 2:(2:3), 3:(3:4));
return spones(S, 1);
####### Spnnz
范例
// 稀疏正态随机矩阵A中非零元素数目
A := Sprandn2(5, 5, 0.2);
return spnnz(A); // 返回4(随机)
####### Spnonzeros
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 提取稀疏正态随机矩阵A中非零元素
A := Sprandn2(5, 5, 0.2);
return Spnonzeros(A);
####### Ifsparse
用途:判断条件是否成立。 参数:
返回:布尔值。
范例
// 判断矩阵S是否为稀疏矩阵
S := array(3:2, "B":3);
return ifsparse(S); // 返回0
####### Spdiags1
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 提取矩阵A中非零对角线
A := array((6, 0, 13, 0, 0),
(0, 7, 0, 14, 0),
(1, 0, 8, 0, 15),
(0, 2, 0, 9, 0),
(0, 0, 3, 0, 10));
return spdiags1(A);
####### Spdiags2
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 提取矩阵A中第-2,0,2条对角线,按列排列
A := array((6, 0, 13, 0, 0),
(0, 7, 0, 14, 0),
(1, 0, 8, 0, 15),
(0, 2, 0, 9, 0),
(0, 0, 3, 0, 10));
d := array(-2, 0, 2);
return spdiags2(A, d);
####### Spdiags3
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 将矩阵A中d指定的对角线替换为B中的列
B := array((5, 10, 15),
(4, 9, 14),
(3, 8, 13),
(2, 7, 12),
(1, 6, 11));
d := array(-2, 0, 2);
A := array((6, 0, 13, 0, 0),
(0, 7, 0, 14, 0),
(1, 0, 8, 0, 15),
(0, 2, 0, 9, 0),
(0, 0, 3, 0, 10));
return spdiags3(B, d, A);
####### Spdiags4
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 根据对角矩阵B创建稀疏带状矩阵
B := array((5, 10, 15),
(4, 9, 14),
(3, 8, 13),
(2, 7, 12),
(1, 6, 11));
d := array(-2, 0, 2);
m := 5;
n := 5;
return spdiags4(B, d, m, n);
数据比较
####### 内容
- TwoRDateCompare_M1
- CompareDataOfDifferentDataProvider
####### TwoRDateCompare_M1
用途:日期时间处理函数。 参数:无。 返回:日期或时间值。
范例
// 返回板块申万数字媒体机构持股情况及变化
BkName := "申万数字媒体";
RDate := 20220331;
RDate2 := 20210331;
t1 := Stocks_SharesByOrgan_Call(BkName, RDate, -1, 0);
t2 := Stocks_SharesByOrgan_Call(BkName, RDate2, -1, 0);
return TwoRDateCompare_M1(t1, t2, RDate, RDate2, "代码", 0,
FieldCountOfStrSubscript(t1) - 2, true, false);
####### CompareDataOfDifferentDataProvider
- TwoRDateCompare_M1
- CompareDataOfDifferentDataProvider
表格显示
####### 内容
- Pivot
- Pivot_table
- Show3DTable
- Show2DTable
- ShowTableByField
- ShowTableByUnit
- ShowTableByInverse
- QuickRecordExist
- RotateTable
- NonIntersectionPart
- FooterValue
- FooterAverage
- FooterSum
- SetRowDefaultValue
- InverseTable
- GetSubTableByKey
- TableSelect
- TableType
- GetSubTableFreeParam
- ExpandTable
####### Pivot
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 指定条件,行标为日期,列标为名称,值为收盘价、涨幅、振幅的数据透视表
stocks := array("SZ000001", "SZ000002", "SH600050", "SZ300775");
begt := 20210515T;
endt := 20210525T;
t := select ['StockID'] as"代码",
["StockName"] as"名称",
datetostr(['date']) as"日期",
["close"] as"收盘价",
spec(specdate(stockzf3(), ['date']), ['StockID']) as"涨幅",
spec(specdate(stockzdf3(), ['date']), ['StockID']) as"振幅",
spec(base(10029), ['StockID']) as"申万行业"
from markettable datekey begt to endt of stocks end;
index := "日期";
colunms := "名称";
vals := array("收盘价", "涨幅", "振幅");
return Pivot(t, index, colunms, vals);
####### Pivot_table
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 指定条件,行标为申万行业,列标为日期,按平均值汇总值为涨幅、振幅的的数据透视表数据
stocks := GetBKByDate("SH000010", 20210525t);
begt := 20210515T;
endt := 20210525T;
t := select ['StockID'] as"代码",
["StockName"] as"名称",
datetostr(['date']) as"日期",
["close"] as"收盘价",
spec(specdate(stockzf3(), ['date']), ['StockID']) as"涨幅",
spec(specdate(stockzdf3(), ['date']), ['StockID']) as"振幅",
spec(base(10029), ['StockID']) as"申万行业"
from markettable datekey begt to endt of stocks end;
index := "申万行业";
colunms := "日期";
vals := array("涨幅", "振幅");
aggfunc := "avg";
return Pivot_table(t, index, colunms, vals, aggfunc);
####### Show3DTable
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 生成数据表t
t := array(("代码":"SH600006", "名称":"东风汽车", "2004.10-12@主营业务收入":151953.06, "2004.10-12@主营业务利润":30559.66, "2004.10-12@营业费用":10112.75, "2004.10-12@管理费用":10666.36, "2004.10-12@财务费用":-894.46, "2004.10-12@营业利润":10693.23, "2004.10-12@投资收益":-151.01, "2004.10-12@利润总额":9904.7, "2004.10-12@所得税":2413.81, "2004.10-12@净利润":7873.08, "2004.10-12@货币资金":-11664.28, "2004.10-12@短期投资":-5370.7, "2004.7-9@主营业务收入":167855.56, "2004.7-9@主营业务利润":31127.95, "2004.7-9@营业费用":4452.79, "2004.7-9@管理费用":10541.15, "2004.7-9@财务费用":-1013.26, "2004.7-9@营业利润":17162.48, "2004.7-9@投资收益":150.81, "2004.7-9@利润总额":17246.26, "2004.7-9@所得税":2629.5, "2004.7-9@净利润":14574.03, "2004.7-9@货币资金":532.5, "2004.7-9@短期投资":4962.47), ("代码":"SH600007", "名称":"中国国贸", "2004.10-12@主营业务收入":19715.3, "2004.10-12@主营业务利润":10383.2, "2004.10-12@营业费用":238.4, "2004.10-12@管理费用":1422.7, "2004.10-12@财务费用":1304.4, "2004.10-12@营业利润":7417.7, "2004.10-12@投资收益":81.1, "2004.10-12@利润总额":6404.6, "2004.10-12@所得税":2433.4, "2004.10-12@净利润":3971.2, "2004.10-12@货币资金":2964.5, "2004.10-12@短期投资":0.00, "2004.7-9@主营业务收入":17727.7, "2004.7-9@主营业务利润":9989.1, "2004.7-9@营业费用":165.5, "2004.7-9@管理费用":1151.3, "2004.7-9@财务费用":-18.2, "2004.7-9@营业利润":8690.5, "2004.7-9@投资收益":186.2, "2004.7-9@利润总额":9208.6, "2004.7-9@所得税":2977.1, "2004.7-9@净利润":6231.5, "2004.7-9@货币资金":-8101.2, "2004.7-9@短期投资":0.00), ("代码":"SH600004", "名称":"白云机场", "2004.7-9@主营业务收入":37934.65, "2004.7-9@主营业务利润":15725.54, "2004.7-9@营业费用":2623.82, "2004.7-9@管理费用":4662.1, "2004.7-9@财务费用":1789.5, "2004.7-9@营业利润":6650.11, "2004.7-9@投资收益":-15.38, "2004.7-9@利润总额":6685.16, "2004.7-9@所得税":2350.15, "2004.7-9@净利润":4000.51, "2004.7-9@货币资金":-5054.06, "2004.7-9@短期投资":101.00));
return Show3DTable(t, '名称', '代码', 3);
返回:
####### Show2DTable
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 生成数据表t
t := array(("代码":"SH600006", "名称":"东风汽车", "主营业务收入":151953.06, "主营业务利润":30559.66, "营业费用":10112.75, "管理费用":10666.36, "财务费用":-894.46, "营业利润":10693.23, "投资收益":-151.01, "利润总额":9904.7, "所得税":2413.81, "净利润":7873.08, "货币资金":-11664.28, "短期投资":-5370.7, "主营业务收入":167855.56, "主营业务利润":31127.95, "营业费用":4452.79, "管理费用":10541.15, "财务费用":-1013.26, "营业利润":17162.48, "投资收益":150.81, "利润总额":17246.26, "所得税":2629.5, "净利润":14574.03, "货币资金":532.5, "短期投资":4962.47), ("代码":"SH600007", "名称":"中国国贸", "主营业务收入":19715.3, "主营业务利润":10383.2, "营业费用":238.4, "管理费用":1422.7, "财务费用":1304.4, "营业利润":7417.7, "投资收益":81.1, "利润总额":6404.6, "所得税":2433.4, "净利润":3971.2, "货币资金":2964.5, "短期投资":0.00, "主营业务收入":17727.7, "主营业务利润":9989.1, "营业费用":165.5, "管理费用":1151.3, "财务费用":-18.2, "营业利润":8690.5, "投资收益":186.2, "利润总额":9208.6, "所得税":2977.1, "净利润":6231.5, "货币资金":-8101.2, "短期投资":0.00));
return Show2DTable(t, '名称', '代码', 2);
返回:
####### ShowTableByField
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
arr := array((1, 2, 3, 4, 5), (2, 3, 4, 5, 6), (3, 4, 5, 6, 7), (4, 5, 6, 7, 8));
return ShowTableByField(arr, array(1, 2, 3));
返回:
####### ShowTableByUnit
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := `array('a':(1, 2, 3, 4), 'b':(2, 3, 4, 5), 'c':(3, 4, 5, 6), 'd':(4, 5, 6, 7), 'e':(5, 6, 7, 8), 'f':(7, 8, 9, 10));
return ShowTableByUnit(t, ``array('字段a', 'a', '', ''));
返回:
####### ShowTableByInverse
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 生成数据表t
t := array(("代码":"SH600006", "名称":"东风汽车", "主营业务收入":151953.06, "主营业务利润":30559.66, "营业费用":10112.75, "管理费用":10666.36, "财务费用":-894.46, "营业利润":10693.23, "投资收益":-151.01, "利润总额":9904.7, "所得税":2413.81, "净利润":7873.08, "货币资金":-11664.28, "短期投资":-5370.7, "主营业务收入":167855.56, "主营业务利润":31127.95, "营业费用":4452.79, "管理费用":10541.15, "财务费用":-1013.26, "营业利润":17162.48, "投资收益":150.81, "利润总额":17246.26, "所得税":2629.5, "净利润":14574.03, "货币资金":532.5, "短期投资":4962.47), ("代码":"SH600007", "名称":"中国国贸", "主营业务收入":19715.3, "主营业务利润":10383.2, "营业费用":238.4, "管理费用":1422.7, "财务费用":1304.4, "营业利润":7417.7, "投资收益":81.1, "利润总额":6404.6, "所得税":2433.4, "净利润":3971.2, "货币资金":2964.5, "短期投资":0.00, "主营业务收入":17727.7, "主营业务利润":9989.1, "营业费用":165.5, "管理费用":1151.3, "财务费用":-18.2, "营业利润":8690.5, "投资收益":186.2, "利润总额":9208.6, "所得税":2977.1, "净利润":6231.5, "货币资金":-8101.2, "短期投资":0.00));
return ShowTableByInverse(t, '代码', '', 2);
返回:
####### QuickRecordExist
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := array('a', 'c', 'd');
return QuickRecordExist(t, 'd');
// 结果:2
####### RotateTable
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':4));
return RotateTable(t);
####### NonIntersectionPart
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t1 := array(('a':1, 'b':4), ('a':7, 'b':8), ('a':2, 'b':3));
t2 := array(('a':1, 'b':1), ('a':7, 'b':8), ('a':5, 'b':5));
return NonIntersectionPart(t1, t2, 'b');
####### FooterValue
用途:数组相关函数。 参数:
返回:处理后的结果值。
算法
对起始序号Fromcol、截止序号ToCol限定大小为0到数组t的字段个数,如果Fromcol>ToCol,则将Fromcol与ToCol互换
若type值为0,则计算各列平均值,如果type为1,则对列求和。
AverageColField可以为t数组中列名,如果列名刚好为对应字符串“平均”或“总计”,那么,除AverageColField列外,其他数据按type类型计算,统计数据 存储在最后一行,AverageColField列下对应为“平均”或“总计”字符串。
如果AverageColField为空或指定的列名不为“平均”或“总计”,那么,“平均”或“总计”字符串存放在第一列最后一行,其他列的统计结果存放在最后一行。范例
s := array(array(1, 2, 3, 4, 5),
array(2, 3, 4, 5, 6),
array(3, 4, 5, 6, 7));
return FooterValue(s, 1, 3, '', 1);
返回:
####### FooterAverage
用途:数组相关函数。 参数:
返回:处理后的结果值。
算法
1、对起始序号Fromcol、截止序号ToCol限定大小为0到数组t的字段个数,
如果Fromcol>ToCol,则将Fromcol与ToCol互换。
2、计算各列平均值
3、AverageColField可以为t数组中列名,如果列名刚好为对应字符串“平均”,那么,除AverageColField列外,其他列计算平均值,平均值存储在最后一行,AverageColField列最后一行值为“平均”。
如果AverageColField为空或指定的列名不为“平均”,那么,“平均”字符串存放在第一列最后一行,其他列的统计结果存放在对应列最后一行。范例
s := array(array(1, 2, 3, 4, 5),
array(2, 3, 4, 5, 6),
array(3, 4, 5, 6, 7));
return FooterAverage(s, 1, 3, '');
返回:
####### FooterSum
算法
1、对起始序号Fromcol、截止序号ToCol限定大小为0到数组t的字段个数,
如果Fromcol>ToCol,则将Fromcol与ToCol互换。
2、计算各列和
3、AverageColField可以为t数组中列名,如果列名刚好为对应字符串“总计”,那么,除AverageColField列外,其他列数据求和,统计值存储在最后一行,AverageColField列最后一行值为“总计”。
如果AverageColField为空或指定的列名不为“总计”,那么,“总计”字符串存放在第一列最后一行,其他列的统计结果存放在对应列最后一行。范例
s := array(array(1, 2, 3, 4, 5),
array(2, 3, 4, 5, 6),
array(3, 4, 5, 6, 7));
return FooterAverage(s, 1, 3, '');
返回:
####### SetRowDefaultValue
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
s := array(array(1, 2, 3, 4, 5),
array(2, 3, 4, 5, 6),
array(3, 4, 5, 6));
SetRowDefaultValue(s, 2, 'wo');
return s;
返回:
####### InverseTable
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
s := array(array('A':'a', 'B':'b', 'C':'c', 'D':'d', 'e':'e'),
array('A':2, 'B':3, 'C':4, 'D':5, 'e':6),
array('A':3, 'B':4, 'C':5, 'D':6, 'e':7), );
return InverseTable(s);
返回:
####### GetSubTableByKey
用途:进行字符串提取或替换处理。 参数:
返回:处理后的结果值。
范例
s := array(array('A':'a', 'B':'b', 'C':'c', 'D':'d', 'e':'e'),
array('A':'c', 'B':3, 'C':4, 'D':5, 'e':6),
array('A':3, 'B':4, 'C':5, 'D':6, 'e':7));
return GetSubTableByKey(s, 'A', 'a;c');
返回:
####### TableSelect
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
t := `array('a':(1, 2, 3, 4), 'b':(2, 3, 4, 5), 'c':(3, 4, 5, 6), 'd':(4, 5, 6, 7), 'e':(5, 6, 7, 8), 'f':(7, 8, 9, 10));
return TableSelect(t, "~['b']=2", '~'); // 返回t中字段’b’=2的子表
返回:
####### TableType
范例
s := array(array(1, 2, 3, 4, 5),
array(2, 3, 4, 5, 6),
array(3, 4, 5, 6, 7));
return tabletype(s);
// 返回:0
####### GetSubTableFreeParam
用途:进行字符串提取或替换处理。 参数:
返回:处理后的结果值。
范例
return GetSubTableFreeParam(); // 之前在系统参数中已经设置好第一个参数s=array(array('s':1,'w':2,'sl':3), array('s':2,'w':3,'sl':4), array('s':3,'w':4,'sl':5)),第二三个参数’s’,’w’。
返回:
####### ExpandTable
用途:数组相关函数。 参数:
返回:处理后的结果值。
范例
// 按照分红送股列展开数据
data := Query("", "SH600000;SZ000002", true, "", "代码", DefaultStockID(), "名称",
CurrentStockName(), "分红送股", infoarray(18));
return ExpandTable(data, "分红送股");
数组下标
####### 内容
- frameIndex_filter
- frameIndex_getilocDZ
####### frameIndex_filter
用途:数组相关函数。 参数:
返回:整数。
范例
范例01
// 选择 "回测周期":"因子分类"
allcols :=
array("回测名称", "回测周期", "分组个数", "因子名称", "因子分类", "IC分析@IC均值", "IC分析@ICIR", "IC分析@IC胜率(%)", "回归分析@平均收益(%)", "回归分析@T值", "分组绝对收益(多头)@收益(%)", "分组绝对收益(多头)@波动率(%)", "分组绝对收益(多头)@胜率(%)", "分组相对收益(多头)@收益(%)", "分组相对收益(多头)@波动率(%)", "分组相对收益(多头)@胜率(%)", "分组相对收益(多头)@T值", "分组多空收益@收益(%)", "分组多空收益@波动率(%)", "分组多空收益@胜率(%)", "分组多空收益@T值", "创建人", "因子回测ID", "收藏人数", "是否已收藏");
return frameIndex_filter(allcols, array('回测周期', '因子分类'), 1);
范例02
// 选择 IC分析 开头的
return frameIndex_filter(allcols, '^IC分析', 3);
范例03
// 选择 IC分析 开头,或者 因子 开头的
return frameIndex_filter(allcols, array('^IC分析', '^因子'), 3);
####### frameIndex_getilocDZ
用途:数组相关函数。 参数:
返回:整数。
范例
return frameIndex_getilocDZ(array('成长', '估值', '动量'));