Delphi类型转换

摘要:
在Delphi 7.0中,我们定义了很多函数,大致分为6类:数据类型转换函数、字符串、数组运算函数、文件、磁盘运算函数、内存、指针运算函数、数学运算函数和日期函数。N是Double类型,用于保存转换后的浮点数据。

Chr 将一个有序数据转换为一个ANSI字符
Ord 将一个有序类型值转换为它的序号
Round 转换一个实型值为四舍五入后的整型值
Trunc 转换一个实型值为小数截断后的整型值
Int 返回浮点数的整数部分
IntToStr 将数值转换为字符串
IntToHex 将数值转换为十六进制数字符串
StrToInt 将字符串转换为一个整型数,如字符串不是一个合法的整型将引发异常
StrToIntDef 将字符串转换为一个整数,如字符串不合法返回一个缺省值
Val 将字符串转换为一个数字(传统Turbo Pascal例程用于向后兼容)
Str 将数字转换为格式化字符串(传统Turbo Pascal例程用于向后兼容)
StrPas 将零终止字符串转换为Pascal类型字符串,在32位Delphi中这种类型转换是自动进行的
StrPCopy 拷贝一个Pascal类型字符串到一个零终止字符串, 在32位Delphi中这种类型转换是自动进行的
StrPLCopy 拷贝Pascal类型字符串的一部分到一个零终止字符串
Delphi 7.0常用函数由一句或多句代码组成,可以实现某个特定的功能。使用函数可以使代码更加易读、易懂,加快编程速度及减少重复代码。过程与函数类似,过程与函数最重要的区别在于,过程没有返回值,而函数能有返回值。
在Delphi 7.0中,已为我们定义好了非常多的函数,大致分类有6种:数据类型转换函数、字符串、数组操作函数、文件、磁盘操作函数、内存、指针操作函数、数学运算函数、日期函数。
在Delphi中调用函数,一般情况下可以直接使用函数即可,但由于有一些函数未包含在Uses中列出的单元中(默认单元有Windows,Messages,SysUtils,Variants,Classes,Graphics, Controls,Forms,Dialogs,所以需要我们手动添加单元。比如,MidStr函数就未包含在这些单元中,MidStr所属单元在StrUtils中,因此我们将StrUtils添加Uses中即可。
在本手册中,凡是未包含在默认列出的单元中的函数,都标明了其所属的单元,使用时应当注意。
一、数据类型转换函数
在我们编写程序当中,根据不同情况,会使用到多种数据类型。当要对不同的类型进行操作时,必须要将不同的类型转换成同样的类型。因此熟练地掌握数据类型的转换是非常重要的。

1.FloatToStr
功能说明:该函数用于将“浮点型”转换成“字符型”。
参考实例:Edit1.Text := FloatToStr(1.981);

2.IntToStr
功能说明:该函数用于将“整数型”转换成“字符型”。
参考实例:S := IntToStr(10);(注:S为String类型变量。)

3.IntToHex
功能说明:该函数用于将“十进制”转换成“十进制”。该函数有二个参数。第一个参数为要转换的十进制数据,第二个参数是指定使用多少位来显示十六进制数据。
参考实例:Edit1.Text := IntToHex('100', 2);
执行结果,Edit1.Text等于64。
注意:Delphi没有提供专门的“十六进制”转换为“十进制”的函数。使用StrToInt函数可以实现这个功能。具体代码是:I := StrToInt('S\' + '64'); 这时I等于100。加上一个'S\'即可将“十六进制”转换为“十进制”。

4.StrToInt
功能说明:该函数用于将“字符型”转换成“整数型”。
参考实例:I := StrToInt('100');
注意:不能转换如 StrToInt('ab')或StrToInt('好')这样的类型,因为他们并不存在数字型。
5.StrToFloat
功能说明:该函数用于将“字符型”转换成“浮点型”。
参考实例:N := StrToFloat(Edit1.Text);
注意:Edit1.Text中的内容为1.981(凡在Edit控件中显示的文本均为字符串)。N为Double类型,用于保存转换后的浮点型数据。

// 保存新的字符串
begin
S := 'I Love China!';  //下面将获取I Love China中的“Love”字符串。
MyStr := Copy(S, 3, 4);
end;
执行结果,MyStr等于“Love”,“Love”字符串在“I
begin
S1 := Concat('A', 'B'); // 连接两个字符串,S1变量等于AB。
S2 := Concat('Borland', ' Delphi', ' 7.0'); // 连接三个字符,S2变量等于Borland Delphi 7.0。
end;
begin
S := 'I Like Reading CPCW.';  // 下面的代码将删除S变量中的“C”字符。
Delete(S, 16, 1);
end;
此时S变量则是I
begin
i := High(arrText); // i的值则为9
end;
begin
S := 'Wat is your name?';
// 上面句子中的What单词查一个“h”字符,下面使用Insert函数将h添加进去。
Insert('h', S, 2); // 将“h”从第2位处插入。
end;
6.LeftStr
begin
S := 'MSN Messenger';
A := LeftStr(S, 3); // 从最左边开始,获取左边的三个字符。因此A变量则等于MSN。
end;

// 用于保存字符串长度
begin
nLen1 := Length('CPCW');
nLen2 := Length('电脑报');
end;
执行结果,nLen1等于4,nLen2等于6。由于一个汉字相当于两个字符的长度,所以3个汉字的长度为6。
begin
i:= High(arrText); // i的值则为1
end;
begin
S := 'ABC';
A := UpperCase(S); // 经过UpperCase函数转换后,A则等于abc。
end;
10.MidStr
begin
S := MidStr('China', 1, 2); // S变量为Ch
H := MidStr('电脑报', 1, 1); // H变量为“电”。如果使用Copy函数,则应是H := Copy('电脑报, 1, 2),否则返回的将不是“电”字。因此在使用操作含有中文的字符串时,最好使用MidStr。
end;

// 用于保存查找的字符所在位置
begin
nPos := Pos('Like', 'I Like Reading!');
end;
此时nPos等于3。如果没有查找到,则nPos为0。
注意:Pos函数在查找时是要区分字符大小的。如果要实现不区分大小,那么需要使用UpperCase或LowerCase函数将两个参数的字符(串)转换为“大写”或“小写”再进行查找。
另外还有一个查找字符(串)的函数----AnsiPos,该函数的使用方法与Pos函数完全一样。当你查找的是汉字时,最好使用AnsiPos函数。
12.RightStr
begin
S := 'MSN Messenger';
A := RightStr(S, 3); // 从最右边开始,获取右边的三个字符。因此A变量则等于ger。
end;

// 定义一个动态数组
begin
SetLength(S, 10); // 当设置后,S变量只能赋值长度为10的字符串。
SetLength(arrText, 10); // 这里声明了长度为256的Char型数组
begin
StrPCopy(arrChar, 'Come on, baby!');
end;
begin
S := ' Delphi 7.0 ';
S := Trim(S);
end;
16.TrimLeft
功能说明:删除字符串左边的空格(无论左边有多少个空格均被全部删除)。
参考实例:S := TrimLeft(' Delphi');

17.TrimRight
功能说明:删除字符串左边的空格(无论左边有多少个空格均被全部删除)。
参考实例:S := TrimRight('Delphi ');

begin
S := 'abc';
A := UpperCase(S); // 经过UpperCase函数转换后,A则等于ABC。
end;
begin
S := 'This is a book.';
AssignFile(F, // 以追加的方式打开文件
Writeln(F, S); // 将S变量中的内容追加到文本尾后。
CloseFile(F); // 关闭文件
end;
begin
sDir :=
ChDir(sDir);
begin
AssignFile(F, // 打开文件
while not EOF(F) do begin // 使用While循环,一直判断是否到了文件未尾
Readln(F, S); // 读取一行文本
AllText := AllText + S;
end;
CloseFile(F); // 关闭文件
end; // 用于保存删除状态
begin
IsOK := // 函数执着后,将结果返回给IsOK变量。如果IsOK变量为True,则表示文件删除成功。
if IsOK then ShowMessage('文件删除成功!')
else ShowMessage('文件删除失败!');
end;
begin
IsExists :=
if IsExists then ShowMessage('Windows文件夹存在!')
else ShowMessage('Windows文件夹不存在!');
end;
begin
FreeSize := DiskFree(3); // 获取C盘中的剩余空间。返回的值是以“字节”为单位的。
end;
begin
DiskSize:= DiskSize(3); // 获取C盘的空间。返回的值是以“字节”为单位的。
end;
begin
AssignFile(F, // 打开文件
while not EOF(F) do begin // 使用While循环,一直判断是否到了文件未尾
Readln(F, S); // 读取一行文本
AllText := AllText + S;
end;
end;
begin
AssignFile(F, // 打开文件
CloseFile(F); // 关闭文件
Erase(F); // 删除文件。在删除文件之前必须先关闭文件。
end;
begin
IsExists :=
if IsExists then ShowMessage('该文件存在!')
else ShowMessage('该文件不存在!');
end;
begin
AssignFile(F, // 打开文件
nSize := FileSize(F); // 获取文件大小。
CloseFile(F); // 关闭文件
end; 这样将不能成功创建MyFolder文件夹。 // 打开文件
end; // 打开文件。如果文件不存在,将会在C盘中创建MyFile.txt文件。如果文件存在,将会覆盖MyFile.txt中的所有内容。
end;
begin
AssignFile(F, // 打开文件
Readln(F, S); // 读取一行文本到S变量中
end;
begin
AssignFile(F, // 更名为NewFile.txt
end;
begin
S := 'This is a book.';
AssignFile(F, // 创建新文件
Writeln(F, S); // 将S变量中的内容写入文本中。
end;
begin
Buffer := AllocMem(256); // 分配大小为256个字节的内存空间
end; // 声明一个Integer(整型)指针
begin
New(P);
P^ := 100;
Dispose(P) // 释放内存
end;
begin
GetMem(Buffer, 256); // 分配大小为256个字节的内存空间。
FreeMem(Buffer); // 释放内存空间
end;
begin
GetMem(Buffer, 256); // 分配大小为256个字节的内存空间。
end; // 声明一个Integer(整型)指针
begin
New(P); // 分配内存
P^ := 100; // 赋值
end;
begin
r := Abs(-2.8); // r等于 2.8
i := Abs(-156); // I 等于 156
end;
2.Exp
功能说明:Exp返回e的X次幂的值,其中e是一个自然对数基底。
参考实例:
e := Exp(1.0); // e为real型变量
end;

3.Floor
功能说明:取得小于等于X的最大的整数。
参考实例:
Floor(-2.8) = -3
Floor(2.8) = 2
Floor(-1.0) =
begin
R := Int(123.456); // R等于 123.0
R := Int(-123.456); // R等于 -123.0
end;

5.Max
begin
k := Max(10, 20); // k将为20
end;

6.Min (所在单元:Math)

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sforiz/archive/2010/01/24/5251416.aspx

免责声明:文章转载自《Delphi类型转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nginx实战二Unity添加多个可视镜头Preview功能(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Scala学习(一)练习

Scala基础学习&l练习 1. 在Scala REPL中键人3.,然后按Tab键。有哪些方法可以被应用 在Scala REPL中需要按3. 然后按Tab才会提示。 直接按3加Tab是没有提示的。下面是结果: 列出的方法并不全,需要查询全部方法还是需要到Scaladoc中的Int,Double,RichInt,RichDouble等类中去...

hiveql函数笔记(二)

1、数据查询 //提高聚合的性能 SET hive.map.aggr=true; SELECT count(*),avg(salary) FROM employees; //木匾不允许在一个查询语句中使用多于一个的函数(DISTINCT。。。)表达式 SELECT count(DISTINCT symbol) FROM stocks; 表生成函数: exp...

Delphi 2009 之 TBalloonHint

本例相关图片: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ImgList; type TForm1 = class(TForm)...

TSQL 定义分割字符串的函数

一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。 CREATEfunctionGet_StrArrayLength ( @strvarchar(1024),--要分割的字符串 @splitvarchar(10)--分隔符号 ) returnsint as begin declare...

VB.net基础知识

3.1 常量 3.1.1 什么是常量          在编程中,常常可以遇到变量和常量。顾名思义,变量就是值可以改变的量,常量是其值不可改变的量。          不可以改变的量有什么用呢?事实上,在实际编程中,常量用得很少。甚至可以用变量代替常量,当然这样做的代价是降低了程序的性能。          事实上,常量有很多用处。例如圆周率,如果每次需要...

五. python 字符串方法函数

一 .字符串方法函数 什么是字符串就是以 单引号或者双引号引起来的任意文本'ancask的库时时刻刻'"ABC事实就是惊声尖叫 1. 创建字符串: str1="abcde骨灰盒fgaa" str2="abcde吾问无为谓fgaa" str3="abcdefg少时诵诗书所所aa" 2.字符串运算连接 str6="SKSDK就是死你KsbDSKDKSKK" s...