⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xstrings.txt

📁 我自己用的Delphi函数单元 具体说明见打包文件的HELP目录下面
💻 TXT
字号:
unit xStrings;

const
	ASC_NULL 	    = Chr(0);
	ASC_TAB   	    = Chr(9);
	ASC_CR    	    = Chr(13);
	ASC_LF    	    = Chr(10);
	ASC_FF    	    = Chr(12);
	ASC_EOF   	    = Chr(26);
	ASC_ESC   	    = Chr(27);
	ASC_BACKSPACE   = Chr(08);
	ASC_SPACE       = Chr(32);
	ASC_CRLF        = Chr(13)+Chr(10);

  //DEFAULT_DELIMITERS = [' ', #9, #10, #13];
    DEFAULT_DELIMITERS = [#0..#$1F, ' ', '.', ',', '?', ':', ';', '(',')', '/', '\'];

type
    TFindMode = (fmMatchCase, fmWholeWord);
    TFindModes = set of TFindMode;

//字符串为空串吗?
function IsEmptyString(const s:String): Boolean;

//字符串为全数字组成吗?
function IsNumberString(const s:string): Boolean;

//字符串为全字母组成吗?
function IsAlphaString(const s:string): Boolean;

//字符串尾部是否包含换行符
function IsIncludeCRLF(const s: string): Boolean;

//截去字符串尾部的回车换行符
function CutTailCRLF(const s: string): String;

//Pos函数的相对函数,从右边查找s串中的substr,返回正确位置,未找到时返回0。
//ofs取缺省值时搜索全串,否则只搜索1->ofs的字符串(注意ofs含义)。
function RPos(const substr, s: string; ofs: Integer = 0): Integer;

//Pos函数的相对函数,从左边查找s串中的substr,返回正确位置,未找到时返回0。
//ofs取缺省值时搜索全串,否则只搜索ofs->Length(s)的字符串(注意ofs含义)。
function LPos(const substr,s: String; ofs : Integer = 0): Integer;

//将s向左扩展到len长度,扩展部分以c填充
function PadL(const s : string; const len : Integer ; const c : Char = ASC_SPACE): string;

//将s向两端扩展到len长度,扩展部分以c填充
function PadC(const s : string; const len : Integer ; const c : Char = ASC_SPACE): String;

//将s向右扩展到len长度,扩展部分以c填充
function PadR(const s : string; const len : Integer ; const c : Char = ASC_SPACE): string;

//取字符串左边n个字符
function LeftString(const s:string;n:Integer):string;

//取字符串Index位置开始的n个字符,Copy更名
function SubString(const s:string;Index,Count:Integer):string;

//取字符串右边n个字符
function RightString(const s:string;n:Integer):string;

//返回一个以c填充,长度为len的字符串
function FillString (const c : Char; const len : Integer): string;

//反转字符串
function ReverseString(const s : string) : string;

//字符串加方括号
function BracketString(const s: string): string;

//去除字符串两端的引号
function UnquoteString(const S: string): string;

//字符串替换,不限字符串出现次数
//s:='Mary said than John likes Mary.';
//s:=ReplaceString(s,'Mary','Jannifer',True);
//返回Jannifer said than John likes Jannifer
function ReplaceString(const s: string; const Token, NewToken: string; bCaseSensitive: Boolean =True ): String;

//简单字符串替换
//Index:替换起始位置
//Count:替换字符数
//s:='1234567'
//s:=ReplaceIndexString(s,'Piggy',2,4);
//返回 1Piggy67
function ReplaceIndexString(const S: string; const Substr: string; index, Count: Integer):String;

//快速生成len长度的随机16进制字符串。
function RandomString (len : integer) : string;

//字符串匹配
//TFindModes中ftWholeWord(必须全字匹配),ftMatchCase(必须大小写匹配)。
//若按规则成功地在s中找到subs,返回subs在s中的位置,如:
//MatchString('I am a good boy.','Goo'); 返回8
//MatchString('I am a good boy.','Goo',[frWholeWord]); 返回0
//MatchString('I am a good boy.','Goo',[frMatchCase]); 返回0
function MatchString(s, substr: string; Modes: TFindModes = []): Integer;

//字符串匹配,如:
//('David Stidolph','*Stido???')
//返回True。
function IsMatchString(const s, substr: String): Boolean;

//在s中查找substr,找到时返回substr前面的字符串,未找到则返回空串
function Before(const s, substr: string): string;

//在s中查找substr,找到时返回substr后面的字符串,未找到则返回空串
function After(const s, substr: string): string;

//查找Search,返回Front,Back之间的字符串,如:
//Inside('This doucment include source code (write in pascal).','(',')');
//返回write in pascal
function Inside(const Search, Front, Back: string): string;

//根据Inside函数限定的范围,返回字符串前部
//LeftInside('This (doucment) include source code (write in pascal).','(',')');
//返回This
function LeftInside(const Search, Front, Back: string): string;

//根据Inside函数限定的范围,返回字符串后部
//RightSide('This (doucment) include source code (write in pascal).','(',')');
//返回 include source code (write in pascal).
function RightSide(const Search, Front, Back: string): string;

//切去标记,原字符串InTxt被切去一部分,切去部分在返回值中。
//s:='Money, 600, Box, Walk On Moon';
//Memo1.Lines.Add(GetToken(s));
function CutToken(var InTxt : String; SpaceChar : TSysCharSet = [',']) : String;

//取得第一个标记串。Remove=True与CutToken类似,速度更快。但需要指定分界符
function FirstToken(var S: string; const Delimiter: string; Remove: Boolean): string;

//取得字符串标记,如
//s:='I am a boy.'
//GetToken(s,1);             返回'I'
//GetToken(s,4);             返回'boy'
//GetToken(s,2,True);        返回'am a boy'
//GetWords(s);               返回4
//s:='You said : I am a good boy.';
//GetToken(s,1,False,[':']); 返回'You said'
//GetToken(s,2,False,[':']); 返回'I am a good boy.'
//GetWords(s);               返回7
//GetWords(s,[':'])          返回2
function GetToken(const S: string; index: Integer; bTrail: Boolean = False; Delimiters: TSysCharSet = DEFAULT_DELIMITERS): string;

//计算字符串中有多少个单词,例子如GetToken所示。
function GetWords(S: string; Delimiters: TSysCharSet = DEFAULT_DELIMITERS): Integer;

//str的函数形式
function ToStr(x:variant):string;

//val的函数形式
function ToVal(const s:string):double;

//字符串首字符的ASC码
function ToAsc(const s : String ): integer;

//许多TCP上层协议,当客户端向服务端提出一个命令请求时,服务端会以3码
//数字作为每个响应的头部,让客户端便于分析请求的执行结果,处理信件传递
//的SMTP就是如此。本函数将状态码分离出来,交给状态码判断程序过滤处理,
//函数返回后,Msg参数的状态码被删除,方便后续处理。例如:
//s:=Recv;       若s为'214-This is sendmail version 8.9.3'
//ParseRPLNo(s); 返回214
//s现在为214-This is sendmail version 8.9.3
function ParseRPLNo(var Msg: string): Integer;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -