1. 数据类型转化

1.1.         数值和字符串转化

Procedure Str(X [: Width [ : Decimals ]]; var S);

将数值X按照一定格式转化成字符串S。Width指定S的总长度,Decimals指定小数点后的位数。

EX: Str(12.2 : 6 : 2 , S); //S=’  12.20’;

Procedure Val(S ; Var V; var Code : Integer);

将字符串S转化为数值V。如果不能转化,则Code返回第一个非法字符的位置。

EX: Val(’12.00’ , V , Code); //Code返回’.’的位置3;

1.2.         整数和字符串转化

Function IntToStr(Value : Integer) : String ;overload;

Function IntToStr(Value : Int64) : String ;overload;

第一个用于32Bit整数,第二个用于64Bit整数。

Function StrToInt(const S : String) : Integer;

Function StrToInt64(const S : String) : Int64;

如果S包含非数字字符,则产生异常,但是S可以是十六进制表示方法,如$A,则返回10。

Function StrToIntDef(const S : String; Default : Integer): Integer;

Function StrToInt64Def(const S : string; Default : Int64):Int64;

如果S非法,则返回Default指定的默认值,不产生异常。

Function TryStrToInt(const S : String; out Value : Integer) : Boolean;

Function TryStrToInt64(const S : String; out Value : Int64) : Boolean;

转化得到的整数保存在输出参数Value中,不能转化则返回false。

Function IntToHex(Value : Integer; Digits : Integer) : String ; overload;

Function IntToHex(Value : Int64; Digits : Integer) : String ; overload;

将十进制整数转化成二进制整数,结果用字符串表示。

Function HexToBin(Text , Buffer : PChar; BufSize : Integer) : Integer;

将十六进制整数转化成二进制,结果用字符串表示,保存在Buffer中。

1.3.         实数和字符串转化

Function FloatToStr(Value : Extended) : String;

Function CurrToStr(Value : Currency) : String;

Function FloatToStrF(Value : Extended; Format : TFloatFormat; Precision, Digits : Integer) : String;

Function FormatFloat(const Format : String; Value : Extended) : String;

Function FloatToText(Buffer : PChar; const Value; ValueType : TFloatValue; Format : TFloatFormat; Precision, Digits : Integer) : Integer;

Function CurrToStrF(Value : Currency; Format : TFloatFormt; Digits : Integer) : String;

Function FormatCurr(const Format : String; Value : Currency) : String;

指定格式。

Function StrToFloat(const S : String) : Extended;

Function StrToCurr(const S : String) : Currency;

字符串转化为实数。

另外:StrToFloatDef , StrToCurrDef , TryStrToFloat , TryStrToCurr

1.4.         实数子类型相互转化

Function FloatToCurr(const Value : Extended) : Currency;

1.5.         布尔类型和字符串转化

Function StrToBool(const S : String) : Boolean;

Function BoolToStr(B : Boolean; UseBoolStrs : Boolean = False) : String;

  1. 字符串处理

2.1字符串常用过程及函数

字符串的索引是从1开始

Function Length(S) : Integer;

Procedure SetLength(var S; NewLength : Integer);

Procedure SetString(var S : String; buffer :PChar; len : Integer);

设置一个字符串的内容(从buffer复制)和长度。

Function Pos(Substr : String; S : String) : Integer;

取得字符串起始位置

Function StringOfChar(Ch : Char; Count : Integer) : String;

用Count个Ch合成一个字符串。

Function DupeString(const AText : String; ACount : Integer) : String;

用ACount个AText合成一个字符串。

Function Concat(s1 [, s2 , … , sn] : String) : String;

Procedure Insert(Source : String; var S : String; Index : Integer);

Function Copy(S; Index, Count : Integer) : String;

Function StringReplace(const S, OldPattern, NewPattern : String; Flags : TReplaceFlags) : String;

用NwePattern替换S中的子字符串OldPattern。

Procedure Delete(var S : String; Index, Count : Integer);

Procedure UniqueString(var str : String); overload;

Porcedure UniqueString(var str : WideString); overload;

指定字符串只有一个引用。

Function WrapText(const Text, BreakStr : String; nBreakChars : TSysCharSet; MaxCol : Integer) : String; overload;

Function WrapText(const Text : String, MaxCol : Integer =45) : String; overload;

分割一个字符串。MaxCol表示一行的最大长度,BreakStr表示在每行末尾要插入的分隔符,如果使用第二种格式,则插入回车换行符。它遇到nBreakChars某字符就分割一次,如果使用第二种格式,则检查空格、连字符、跳格符。

Function QuotedStr(const S : String) : String;

用单引号将字符串包裹起来。字符串中的引号会被自动处理。

Function LastDelimiter(const Delimiters, S : String) : Integer;

Delimiters是多个字符的组合,它返回某个字符在S中最后出现的位置。

Function IsDelimiter(const Delimiters, S : String; Index : Integer) : Boolean;

Function CompareStr(const S1, S2 : String) : Integer;

比较两个字符串,区分大小写。

Function SameText(const S1, S2 : String) : Boolean;

Function CompareText(const S1, S2 : String) : Integer;

不区分大小写。

Function LeftStr(const AText : String; ACount : Integer) : String;

取左边部分字符串。

Function RightStr(const AText : String; ACount : Integer) : String;

Function LowerCase(const S : String) : String;

Function UpperCase(const S : String) : String;

Function MidStr(const AText : String; const AStart : Integer) : String;

取得部分字符串,等价于Copy。

Function ReverseString(const AText : String) : string;

翻转字符串。

Procedure Str(X [ : Width [ : Decimals ]];  var S);

格式化一个字符串并保存到S。

Function Trim(const S : String) : String; overload;

Function Trim(const S : WideString) : WideString; overload;

去掉字符串头尾的空格和控制字符。

2.2 和字符串相关的类TStrings

TStrings是字符串列表对象的基类,是一个抽象类。

重要属性:

Property CommaText : String;

按照system data format格式,在字符串列表和字符串之间转换。

字符串列表->字符串:

所有字符串被逗号分割;

如果字符串中包含空格、逗号、双引号,则该字符串头尾会加上双引号;

字符串中的双引号被自动重复。

字符串->字符串列表:

不在双引号中的空格、逗号是分隔符;

连续的逗号分隔符会生成空字符串;

逗号分隔符前后的空格分隔符不作为分隔符,被忽略。

Property DelimitedText : String;

Property Delimiter : Char;

Property QuoteChar : Char;

按照Delimiter和QuoteChar在字符列表和字符串之间转换。当Delimiter为逗号,QuoteChar是双引号时,DelimitedText和CommaText完全一样。

Property Text : String;

在列表各项的末尾加上回车换行符进行字符串列表和字符串之间的转换。

Property Name[Index : Integer] : String;

当列表中字符串是”Name=Name”格式时,得到Name。只读属性。

Property Value[const Name : String] : String;

当列表中字符串时”Name=Value”格式时,得到Value。

Property String[Index : Integer] : String; default;

引用第Index项字符串。

Property Object[Index : Integer] : TObject;

引用第Index项字符串关联的对象。

重点方法:

Function AddObject(const S : String; AObject : TObject) : Integer; virtual;

将一个具有关联对象的字符串增加到列表项,返回其放置的位置。

Procedure AddStrings(Strings : TStrings); virtual;

增加一个字符串列表的所有字符串到末尾。

Function Equals(Strings : TStrings) : Boolean;

比较两个列表,不比较字符串关联的对象。

Procedure Exchange(Index1, Index2 : Integer); virtual;

交换两个项的位置。

Procedure LoadFromFile(const FileName : String); virtual;

Procedure SaveToFile(const FileName : String); virtual;

从文件读取/保存列表项,文件中每行对应列表中每项。

Procedure LoadFromStream(Stream : TStream); virtual;

Procedure SaveToStream(Stream : TStream); virtual;

将流读到Text属性/保存到流,然后转化为列表项。回车符或换行符或二者任意组合作为分割符。

Procedure Move(CurIndex, NewIndex : Integer); virtual;

将CurIndex处列表项移到NewIndex处。

2.3 TStringList

TStringList是TStrings的直接子类。它实现了TStrings的所有抽象方法。

重要属性:

Property CaseSensitive : Boolean;

是否区分大小写。

Property Sorted : Boolean;

是否对列表排序,默认是false。为True时按升序排列。

Property Duplicates : TDuplicates;

当列表被升序排列(包括按升序插入、Sorted=True 或者调用Sort 方法等)后,用户试图插入和已有列表项重复的字符串时作何处理。

Type TDuplicates = ( dupIgnore , dupAccept , dupError );

分别是不能插入、允许插入、不能插入且触发异常。

重点方法:

Procedure Sort ; virtual;

将列表项按升序排列。

Function Find(const S : string; var Index : Integer) : Boolean ; virtual;

当列表被升序排列(包括按升序插入、Sorted=True 或者调用Sort 方法等,在非升序状态下,该方法总是返回False)后,查找S 在列表中是否存在,Index 返回位置。一般不使用这个方法,而使用IndexOf。

procedure CustomSort(Compare: TStringListSortCompare); virtual;

type TStringListSortCompare = function(List : TStringList; Index1, Index2 : Integer) : Integer;

自定义排序方法。规则如下:如果Index1 处字符串应该在Index2 之前,应返回负数;如果相等,应返回0;如果应该在Index2 之后,应返回正数。

两个事件:

Property OnChange : TNotifyEvent;

Property OnChanging : TNotifyEvent;

列表变化后/前触发。

delphi常用函数过程的更多相关文章

  1. (转载)delphi 常用函数(数学)

    delphi 常用函数(数学) Delphi中怎么将实数取整? floor 和 ceil 是 math unit 里的函数,使用前要先 Uses Math.trunc 和 round 是 system ...

  2. Delphi 常用函数(数学函数)round、trunc、ceil和floor

    源:Delphi 常用函数(数学函数)round.trunc.ceil和floor Delphi 常用函数(数学) Delphi中怎么将实数取整? floor 和 ceil 是 math unit 里 ...

  3. NotePad++ delphi/Pascal函数过程列表插件

    从cnpack上爬下来的 函数过程列表 点击下载

  4. 自己写的一些Delphi常用函数

    今天在整理以前写过的代码,发现有些函数还是挺实用的,决定将其贴到Blog上,与众多好友一起分享.{*************************************************** ...

  5. delphi常用函数

    直接引用了 http://www.cnblogs.com/doit8791/archive/2012/05/17/2507073.html.

  6. Delphi 常用函数记录

    //判断是否是数字 function IsNumeric(sDestStr: string): Boolean; //简写多余汉字 function SimplifyWord(sWord: strin ...

  7. delphi常用函数和方法

     uses ShellApi, ActiveX, ComObj, ShlObj; function HasText(Text: string; const Values: array of strin ...

  8. Delphi 常用API 函数

    Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconic ...

  9. Delphi 常用API 函数列表

    Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小AnyPopup 判断屏幕上是否存在任何弹出式窗口ArrangeIconicWi ...

随机推荐

  1. HDU 4118 Holiday's Accommodation

    Holiday's Accommodation Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 200000/200000 K (Jav ...

  2. cocos2d-lua 3.5 android搭建步骤

    cocos2d-lua 3.5 android搭建步骤 如何安装eclipse,jdk,android sdk,ndk这里都不说了,资料很多,而且以前用eclipse搭建cocos2d-x-c++的时 ...

  3. Mistral 工作流组件之一 概述

    Mistral的前世今生:  Mistral是Mirantis公司为Openstack开发的工作流组件,提供Workflow As a Service.典型的应用场景包括任务计划服务Cloud Cro ...

  4. 在java 中,数组与 List<T> 类型的相互转换

    在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...

  5. php最简单的文件处理。

    <?php $DOCUMENT_ROOT =$_SERVER['DOCUMENT_ROOT']; ?> <html> <head> <title>Bob ...

  6. django 单独测试模块

    今天单独测试django的一个views文件,出现错误import的模块没有定义,这个模块是在django项目中自己编写的,解决办法: 1../manage.py shell 通过命令行进去加载,再执 ...

  7. List<string>里 每个元素重复了多少次

    List<string>里 每个元素重复了多少次 static void Main(string[] args) { List<string> list = new List& ...

  8. 使用Apache CXF开发WebServices服务端、客户端

    在前一篇的博客中,我使用Xfire1.x来开发了WebServies的服务端. 但是如果你访问Apache的官网,可以看到xfire已经被合并了. 最新的框架叫做CXF. Apache CXF = C ...

  9. C和C++混合编译

    关于extern_C 通常,在C语言的头文件中经常可以看到类似下面这种形式的代码: #ifdef __cplusplus extern "C" { #endif /**** som ...

  10. Ax Grid 的显示根据用户的需求动态排序。

    点击方向按钮上下移动记录. 设计思路. 以临时表TmpTable1举例. 在表中加一个real类型字段(eg:ColumnSeq)用于排序,给表建一个ColumnSeq字段的索引ColumnSeqId ...