【Delphi笔记】第五部分:Delphi内置函数

本文详细介绍了Pascal编程中数值函数、字符串与PChar的使用,包括字符串操作、PChar读写、不可变性,以及字符串与PChar的相互转换。此外,还涵盖了日期时间函数、转换函数如浮点数到字符串、集合操作和文件操作的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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’));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酥饼大人。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值