1、数值函数
2、理解字符串与PChar
(1)PChar可以作为一个以#0结尾的Char字符数组,属于指针类型。
type
PChar = ^Char;
【注意】#0后的字符自动舍弃。
(2)PChar的读取:p读取全部字符,p^读取当前指针位置字符
var
p: PChar;
begin
p := 'ABCD' + #0 + 'EFGH';
//p的值是 ABCD
//p^的值是 A
end
(3)字符串一旦创建则不可更改
var
s: string;
p: PChar;
begin
s := 'ABC';
p := PChar(s);
p^ := 'D'; //出错
end
(4)PChar与string的相互转换:
PChar转成string:StrPas(PChar); 或直接赋值 s := PChar;
String转成PChar:PChar(string);
3、字符串与PChar函数
3.1 字符串函数:
- CompareStr(s1, s2) 比较字符串(区分大小写)。
- CompareText(s1, s2) 比较字符串(不区分大小写)。
【注意】相同返回0,不同返回s1,s2第一次不相同的字符,前减后的ASCII码值(Integer)。
- SameStr 判断两个字符串是否相同(区分大小写)。返回布尔值
- SameText 判断两个字符串是否相同(不区分大小写)。返回布尔值
【注意】凡是Str的相关比较函数,都是区分大小写的。凡是Text的相关比较函数,都是不分的。
- Length 返回字符串的字符长度。
【注意】当参数是AnsiString返回的是字节长度,当参数是string时返回的是字符长度。
- ByteLength 返回字符串的字节长度。
【注意】ByteLength只有一个参数string,不支持AnsiString,使用AnsiString也会被转换成string。
- Pos 获取一个字符串在另一个字符串中出现的位置。
【注意】Pos(const SubStr, Str: String; Offset: Integer): Integer;
-
Copy 截取字符串(返回一字符串的子串)。
-
StringReplace 替换字符串。
【注意】StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; Flags取值为rfReplaceAll:替换全部,rfIgnoreCase:不分大小写。为[ ]时替换第一个。
-
StringOfChar 获取重复字符的字符串。
-
Delete 从字符串中删除子串。
【注意】Delete是过程方法,直接对原串进行处理,无返回值。
- Insert 在字符串中插入子串。Insert('', ‘1234’, 2) —>1234
【注意】Insert是过程方法,直接对原串进行处理,无返回值。
- Format 格式化一系列的参数并返回字符串。
【注意】%s 字符串, %d 数值
- FormatDateTime 用指定的格式来格式化日期和时间。
- FormatFloat 指定浮点数格式。
- LowerCase 将给定的字符串变为小写。
- UpperCase 将给定的字符串变为大写。
- Trim 从给定的字符串中删除前导和尾部的空格及控制字符。
- TrimLeft 从给定的字符串中删除首部的空格及控制字符。
- TrimRight 从给定的字符串中删除尾部的空格及控制字符。
3.2 PChar函数
【注意】PChar函数都是以Str开头的。
-
StrComp 比较两个PChar字符串(区分大小写)。
-
StrIComp 比较两个PChar字符串(不区分大小写)。
-
StrCopy 将一个PChar字符串复制到另一个PChar字符串中。
-
StrPCopy 将一个string字符串复制到一个PChar字符串中。
【注意】比较下面两个:p1与p2的内容都和s相同。
-
p1 := PChar(s) p1与s对应同一个内存地址;
-
StrPCopy(p2, s); p2与s对应不同的内存地址;
-
StrPas 将PChar字符串转换为Pascal类的string字符串。s := StrPas§;等价于s:= p;
4、日期时间函数
-
Date /Time/Now 返回本机的当前日期/时间/日期时间(不需要加( ))。
-
DayOfWeek 返回星期几的数值(从星期日开始算是第1天)
-
DecodeDate 将日期格式分解为年月日。DecodeDate(Now, y, m, d);
-
DecodeTime 将时间格式分解为时、分、秒、毫秒。DecodeTime(Now, h, n, s, z);
-
EncodeDate 将年月日合成为日期格式。dt := EncodeDate(2099, 12, 31)
-
EncodeTime 将时、分、秒、毫秒合成为时间格式。dt := EncodeTime(10, 12, 31, 945);
-
ReplaceDate 日期替换ReplaceDate(dt, EncodeDate(2011, 1, 1));
-
ReplaceTime 时间替换ReplaceTime(dt, EncodeTime(10, 10, 10, 100));
-
IncMonth 返回参数日期时间递增参数N个月后的日期时间
【注意】以下日期时间函数需要引用DateUtils.pas
- IncYear / IncWeek / IncHour / IncMinute / IncSecond / IncMilliSecond
返回参数日期时间递增参数N年/周/时/分/秒/微秒的日期时间
- StartOfTheYear / StartOfMonth / StartOfWeek / StartOfTheDay
返回参数日期的当年/月/周的开始时刻。
- EndOfTheYear / EndOfMonth / EndOfWeek / EndOfTheDay
返回参数日期的当年/月/周的最后时刻。
【注意】EndOfTheDay精确度是1毫秒,与SQLServer的3毫秒不同。
-
CompareDateTime、SameDateTime 比较日期时间的大小
-
CompareDate、SameDate 只比较日期部分
-
CompareTime、SameTime 只比较时间部分
-
DateOf 获取日期部分
-
TimeOf 获取时间部分
-
Years/Months/Days/Hours/Minutes/Seconds/MilliSecondsBetween
获得日期时间间隔
5、转换函数
-
FloatToStr 将浮点数转换为字符串
-
IntToStr 将整型数转换为字符串
-
BoolToStr 将布尔型转换为字符串(True: ‘-1’, False: ‘0’)
-
DateTimeToStr / DateToStr / TimeToStr 将日期时间/日期/时间格式转换为字符串
-
StrToFloat(Def) 将字符串转换为浮点数(或默认值)。
-
StrToInt(Def) 将字符串转换为整型(或默认值)。
-
StrToBool(Def) 将字符串转换为布尔型(或默认值)
-
StrToDateTime(Def) 将字符串转换为日期时间格式(或默认值)。
-
StrToDate(Def) 将字符串转换为日期格式(或默认值)。
-
StrToTime(Def) 将字符串转换为时间格式(或默认值)。
-
Str 将数值转换为字符串 e := 123456.987654321; Str(e:20:6, s);
-
Val 将字符串转换为数值,可识别第几个字符不能转换Val(Str , i, iCode)
6、集合函数
-
Exclude 函数 从集合中删除一些元素。
-
Include 函数 添加元素到集合中。
【注意】不允许增加和减少集合,只能是元素。
6.1集合与集合的关系
(1)运算符 >= 用于判断右边集合是否为左边集合的子集。
(2)运算符 <= 用于判断左边集合是否为右边集合的子集。
(3)运算符 = 用于判断左右两边集合是否相等。
6.2 集合与元素的关系
运算符 in 用于判断一个集合元素是否包含于一个集合中
7、文件操作函数
-
FileExists 判断文件是否存在。成功返回True,失败返回False。
-
DeleteFile 删除文件。成功返回True,失败返回False。
比如:C:\Users\Desktop\ABC.exe
-
ExtractFileName 解析文件全路径,返回文件名(含扩展名)。ABC.exe
-
ExtractFileExt 返回文件的扩展名(包括点.)。.exe
-
ExtractFilePath 返回指定文件的路径(不含文件名)。C:\Users\Desktop\
-
ExtractFileDir 返回指定文件的路径(不含文件名,不带斜杠\结尾)C:\Users\Desktop
-
ExtractFileDrive 返回指定文件的所在驱动器盘符。C:
-
ChangeFileExt 对文件名更改扩展名,返回新的文件名字符串。(没有更改文件实体名称)
-
RenameFile 对文件重命名。RenameFile(fn, ChangeFileExt(fn, ‘.doc’));