 delphi数据类型转换函数帮助文件

函数转换:

    DateTimeToFileDate 函数 将DELPHI的日期格式转换为DOS的日期格式 
    
    DateTimeToStr 函数 将日期时间格式转换为字符串 
    
    DateTimeToString 函数 将日期时间格式转换为字符串 
    
    DateToStr  函数 将日期格式转换为字符串     

    FileDateToDateTime   函数 将DOS的日期格式转换为DELPHI的日期格式 
    
    FloatToDecimal  函数  将浮点数转换为十进制数     

    FloatToStr   函数 将浮点数转换为字符串     

    FloatToStr  函数  将浮点数转换为字符串     

    FloatToText   函数  将给定的浮点数转换为十进制数  
   
    FloatToTextFmt   函数  将给定的浮点数转换为十进制数 
    
    IntToHex   将整型数转换为十六进制数     

    IntToStr    将整型数转换为字符串     

    StringToWideChar   将ANSI字符串转换为UNICODE字符串
     
    StrToDate     将字符串转换为日期格式     

    StrToDateTime    将字符串转换为日期/时间格式 
    
    StrToFloat    将给定的字符串转换为浮点数   
  
    StrToInt    将字符串转换为整型     

    StrToIntDef    将字符串转换为整型或默认值  
   
    StrToTime    将字符串转换为时间格式     

    TextToFloat   将字符串(以NULL结束的格式)转换为浮点数 
    
    TimeToStr       将时间格式转换为字符串   

    VarToDateTime         将给定的变体转换为日期时间  
   
    WideCharLenToString    将ANSI字符串转换为UNICODE字符串 
    
    WideCharToString     将UNICODE字符串转换为ANSI字符串   
  
    WideCharToStrVar    将UNICODE字符串转换为ANSI字符串变量
 



一、数据类型:

常用的类型:Integer(有符号整数型),DWORD(32位无符号,与Cardinal相同),BOOL(FALSE..TRUE与Boolean相同)
BYTE(字节型,加P为指针),Char(字符型,加P为指针),String(字符串型),Single(单精度浮点型,加P为指针)
Double(双精度浮点型)

(1) 基本数据类型:
    a、 整数类型:(通用类型<32位>：Integer－有符号;Cardinal－无符号)
          具体:
         有符号:Shortint<8位>，Smallint<16位>，Longint<32位 >
         无符号:Byte<8位>，Word<16位>，LongiWord<32位 >
   
    b、字符类型:(通用类型<8位>：Char －与AnsiChar等同)
           具体：
            AnsiChar<8位> ：主要存放Ansi字符
            WideChar<16位>：主要存放Unicode字符
    
    c、布尔类型:(通用类型<8位>:Boolean－与ByteBool等同)
           具体：
            ByteBool<8位>,WordBool<16位>,LongBool<32位>
           不同的布尔类型主要用于其它编程语言及不同windows系统兼容。
   
     d、枚举类型：
           定义:type   枚举类型标识符＝(key1[=val1],....,keyn[=valn]) :n<=255
           如果给某些key指定了值，则未指定值的key是前一个key值加1；
           如果全部默认不指定值，则key1值为0，往后逐个加1。

     e、子界类型：
           定义:type 子界类型标识符＝下界..下界
           如：type SubInt＝1..30；表示 1～30的整数
                   type    SubChar＝'a'..'z'；表示字符

   ※注：1、以上四种类型称为有序类型，即除第一个数为都有先行数、除最后一个数外都有后继数。在这里

     (计算机里)，整数是有限的。有序类型的数都有一个序号，称为序数。整数的序数为其本身，其他类型第一
	个数序数为0，依次递增。

         2、子界类型上、下界必须是有同一有序类型，且上界序数大于下界序数。
      
    f、浮点类型:(通用类型<8字节>:Real－与Double等同)
           具体:
           Double<8字节>,Real48<6字节>Single<4字节>,
           Extended<10字节>,Comp<8字节>,Currency<8字节>

     g、字符串类型:(通用类型:String－与AnsiString等同)
           具体：
           ShortString: 最多存放255个字符,第一个自己存放字符个数,不以NULL结尾
           AnsiString: 存放Ansi字符,以NULL结尾
          WideString: 存放Unicode字符,以NULL结尾
    
     h、时间、日期类型：TDateTime －实际是浮点类型的别称

(2)复合数据类型:
   
    a、指针类型:
         定义:type 指针类型标识符＝^基本类型；
         内在分配:New()         内存释放:Destroy()
         对于Pointer 和PChar   用GetMem()或AllocMem()分配内存，用FreeMem()释放内存

         分配内存后,就可以当成基本类型一样使用:指针类型标识符^

         实际上常如下运用指针:           
         var     变量标识符:^基本类型；
         为变量分配内存后就可以将(变量标识符^)当成普通变量使用。

   b、记录类型:
         定义:type 记录类型标识符＝Record
                      字段1:类型;
                      ...
                      字段n:类型;
          end;

   c、集合类型:
          定义:type 集合类型标识符＝Set of   基本类型的子集或子界类型;(<=255个元素)

   d、变体(通用)类型:Variant;


(3)数组类型:

     a、一维数组:
           定义:type   数组标识符＝Array[下标下限..下标上限] of 基本类型;

     b、多位数组:
           定义:type   数组标识符＝Array[下限1..上限1,...,下限n..上限n] of 基本类型;

    c、动态数组(变量):
          var   标识符:array of 基本类型；
          SetLength(标识符,个数),//分配空间
          标识符:=nil;//释放



二、语句

   首先要说一下begin  ...  end; 相当于c或者c++中的{...}.

   (1)声明语句
       常量：const  常量标识符[:类型]=常值;
       变量：var  变量标识符: 数据类型;

   (2)表达式语句
       由运算符组成的合法语句
       运算符优先级:  运算符   
       优先级
       @ not 1                       (最高)
        *,/,div,mod,and,shl,shr,as,2
        +,-,or,xor ,3
        >,<,>=,<=,<>,=,in,is,4       (最低)

   (3) with   ...   do    ... end   语句
      主要在操作记录类型或组件时使用。
      示例：type people=Record                   //定义记录people
              name:string;
              addr:string;
              age:integer;
              sex:string;
            end;
       var Me:People;                 //定义people型的变量
           with Me do
           begin
                name:='Paul';
                addr:='Guangzhou';
                age:=23;
                sex:='male';
           end;

(4)goto 语句

     现在所有声音都是说要减少goto语句是使用，所以尽量少用为是。
     示例:
          Label  MyLabel;  //用Label保留字声明MyLabel

          MyLabel:  //标记
               ... //其它语句
          goto MyLabel;  //跳转到MyLabel 处



(5)条件语句


    a、if ...   then ... 语句
         if    布尔表达式 then   ..;
   或 if 布尔表达式 then 
      begin
       ...
      end;
        其它格式:
        if ...   then...  end  else begin...  end;

        if ..... then ....  else if ... then ...   else ...;

   b、case   ...   of  语句

         case 表达式 of
                值1:...
                值2:...
                 ...
                值n:...
         end;




6)循环语句
   a、for ...   to ... do 语句
      for 循环变量:=初值 to 终值 do   ...;
或    for 循环变量:=初值 to 终值 do
       begin
          ...
       end;

   b、while ... do 语句
      while 布尔表达式 do ...;
      或 while   布尔表达式   do
         begin
           ...
         end;

c、repeat ... until   语句
       repeat    ...    until    布尔表达式；

(7)循环的中断
     break： 循环结束
     continue：结束本次循环
     goto：(略)
     exit：退出当前函数或过程
     halt()：终止整个程序，参数为整数
     RunError()：(略)


三、过程与函数

(1) 过程(无返回值)
      声明:procedure <过程名> (<参数列表>);

(2)函数(有返回值)

     声明:function <函数名> (<参数列表>):返回值类型;
     用Result 或 <函数名>返回函数值；
     即在函数中用 Result:＝函数值;或 <函数名>:＝函数值:返回;

四、错误处理
	Try	...	except	...	end; 类似于If	...	else	...

四、引用DLL接口

(1)静态引用

Function <DLL函数名>(<参数1>:<变量1>; <参数2>:<变量2>):<返回值类型>;
<调用约定,如Stdcall或Cdecl等>;external '<dll文件名>' name '<DLL函数别名>';

(2)动态引用

type
<函数指针>=function(<参数1>:<变量1>; <参数2>:<变量2>):<返回值类型>;<调用约定,如Stdcall或Cdecl等>;
var
<DLL句柄>:<变量>;
<函数别名>:<函数指针>;
begin
<DLL句柄>:=LoadLibrary('<dll文件名>');
@<函数别名>:=GetProcAddress(<DLL句柄>, '<DLL函数名>');
<函数别名>(<参数用途1>,<参数用途2>);
