一些不常用的且功能相当有用的DELPHI函数

1、function Comparastr (const s1,s2: string):Integer;

    比较两字符串,区别大小写;

    注:由于此函数操作是基于每个条件的8位序数值,所以返回的结果,如果 s1<s2 就返回小于0 如果相等就为 0 返回就大于零;

    众所周知,DELPHI语言不区分大小写,但是有的时候,在设计密码登录时为加强安全性而需要区分;

   funcgtion checkpassword(s1:string):boolean;

   begin

        Result := CompareStr(s1,'Joe')=0 ;

   end;

   有一个类似的函数

      function SameText (const s1,s2:string):boolean;

      比较两串字符串(不区分大小写),相同就返回 true 反之返回 false;

==============================================================

2、function Concat (s1[,s2,...,sn]:string):string;

    将所有参数组成字符串;

    通过我们使用 + 来边连接字串符,但是有的时候,Concat 可以更加的直观,特别是字符串段落数相对较多时;

    var

        s1,s2 : string;

        ss : string;

    begin

        ss := '铅笔';

        s1 := '你确定要出售 '+ss+'吗?’;

        s2 := Concat('你确定要出售 ',ss,'吗?’);

    end;

==============================================================

 

3、function PosEx (const SubStr,S: string;Offset:Cardinal =1): integer;

     是 Pos 函数的扩展,与Pos不同的是: Offset 表示从哪一个位置开始检索 SubStr ;

     所属单元:StrUtils

     Showmessge(inttostr(PosEx('我','我是人我是中国人',3)))  ;  {结果为:7}

     比如,还可以用在对 电邮地址的判断等;

==============================================================

4、function QuotedStr (const S:string):string;

     用 引号 括上一段字符串;

     在数据库操作的写 SQL 语句查询时,使用此函数将会少很多麻烦;

==============================================================

5、function ExtractStrings (Separators,WhiteSpace:TSysCharSet; Content:PChar; string:TStrings):Integer;

     Separators : 用于指定分隔字符串的分隔符;

     WhiteSpace : 分解字符串时的起始位置的字符串,可忽略;

     Content : 要分解的字符串;

     Strings : 存放分解后的字符列表;

     示例:

procedure TForm1.btn1Click(Sender: TObject);   var    L : TStringList;     s : string;     n : Integer;   begin    s :='asdf,dfg,123,234';     L := TStringList.Create;     try      n := ExtractStrings([','],[],PChar(s),L);       ShowMessageFmt('%d'+#13#10+'%s',[n,l.Text]);     finally      L.Free;     end;   end;  

procedure TForm1.btn1Click(Sender: TObject); var L : TStringList; s : string; n : Integer;begin s :='asdf,dfg,123,234'; L := TStringList.Create; try n := ExtractStrings([','],[],PChar(s),L); ShowMessageFmt('%d'+#13#10+'%s',[n,l.Text]); finally L.Free; end;end;

 

结果:

 4
asdf

dfg

123

234

==============================================================

 

6、function StrLComp (const str1,str2:PChar; MaxLen:Cardinal):Integer;

     str1 , str2 两个字符串指针;

     MaxLen  比较的长度 ;

==============================================================

 

7、CompareValue

     function CompareValue (const A, B: Extended; Epsilon: Extended = 0): TValueRelationship; overload;
     function CompareValue (const A, B: Double; Epsilon: Double = 0): TValueRelationship; overload;
     function CompareValue (const A, B: Single; Epsilon: Single = 0): TValueRelationship; overload;
     function CompareValue (const A, B: Integer): TValueRelationship; overload;
     function CompareValue (const A, B: Int64): TValueRelationship; overload;

     uses Math

     比较两个值之间的关系

     如 A 小于 B 则返回  -1  ,如果相等则为 0 ,如果 A>B 则返回为 1;

==============================================================

8、procedure DivMod (Dividend: Cardinal; Divisor: Word;  var Result, Remainder: Word);

     Uses Math

     Dividend  整型表达式,表示被除数;

     Divisor  整型表达式,表示除数

     Result   用于保存商; 

     Remainder  用于保存余数;

==============================================================

9、function Frac (const X: Extended): Extended;

     返回一个实数的小数部分

==============================================================

10、function ForceDirectories (Dir: string): Boolean;

      在指定的目录中,创建一个目录

      var

          s: string;

       begin

           s :='C:\a';

           if ForceDirectories(s) then showmessage('成功');

       end;

==============================================================

11、function CreateMessageDialog (const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn): TForm;

    在开发程序时,有的消息对话框是经常使用的,为了提供效率,使用此函数来创建一个对话框,然后用 showmodal(只能使用此方法 ) 方法来显示;

var    Form1: TForm1;     frmmsg :TForm;   implementation  {$R *.dfm}  procedure TForm1.FormCreate(Sender: TObject);   begin    frmmsg := CreateMessageDialog('hint',mtInformation ,[mbYes,mbNo ]) ;   end;   procedure TForm1.btn1Click(Sender: TObject);   begin    if frmmsg.ShowModal =IDYES  then ShowMessage('yes');   end;  

var Form1: TForm1; frmmsg :TForm; implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin frmmsg := CreateMessageDialog('hint',mtInformation ,[mbYes,mbNo ]) ;end; procedure TForm1.btn1Click(Sender: TObject);begin if frmmsg.ShowModal =IDYES then ShowMessage('yes');end;

 

==============================================================

12、function CreateClassID : string;
uses ComObj
生成一个 CLSID了字符串,产品一个GUID

function GetGUID: ShortString;
var
  t:TGUID ;
begin
  OLECheck(CreateGUID(t));
  Result := CreateClassID ;
end;

==============================================================

posted @ 2013-04-28 13:18  小天1981  阅读(201)  评论(0编辑  收藏  举报