Delphi常用系统函数总结

时间:2024-01-21 20:28:15

Delphi常用系统函数总结

字符串处理函数

Unit System

函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S := S1 + S2 + S3 ...; 相同. 将字符串相加.

函数原型 function Copy(S: string; Index, Count: Integer): string;说明 S : 字符串. Indexd : 从第几位开始拷贝. Count : 总共要拷贝几位. 从母字符串拷贝至另一个字符串.

函数原型 procedure Delete(var S: string; Index, Count:Integer);说明 S : 字符串. Indexd : 从第几位开始删. Count : 总共要删几位. 删除字符串中的数个字元.

函数原型 procedure Insert(Source: string; var S: string; Index: Integer);说明 Source : 子字符串. S : 被插入字符串. Indexd : 从第几位开始插入. 将一个子字符串插入另一个字符串中.

函数原型 function Length(S: string): Integer; 求字符数

函数原型 function Pos(Substr: string; S: string): Integer;说明 Substr : 子字符串.S : 母字符串. 寻找子字符串在母字符串中的位置.

函数原型 function LowerCase(const S: string): string; 将字符串全部转为小写字母.

函数原型 function UpperCase(const S: string): string; 将字符串全部转为大写字母.

pos(obj,target) 在target字符串中找出第一个出现obj的第一个字符位置,如果找不到,返回0.

function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;功能 返回替换后的字符串说明 rfReplaceAll为替换全部内容;rfIgnoreCase为忽略大小写

function StringToGUID(const S: string): TGUID;功能 返回字符串S转换成全局标识说明 如果字符串非法将触发异常

function GUIDToString(const GUID: TGUID): string;功能 返回全局标识GUID转换成字符串

函数原型 procedure Str(X [: Width [: Decimals ]]; var S); 将数值转换为格式化的字符串.说明 X : 欲转换的整数 or 实数. Width : 格式化长度.(Integer) Decimals : 小数点位数.(Integer)

函数原型 procedure Val(S; var V; var Code: Integer); 将字符串转为数字.说明 S : 欲转换的字符串. V : 转换后的整数 or 实数.Code : Code = 0 表示转换成功.

Unit SysUtils

函数原型 function NewStr(const S: string): PString; 在 heap 中配置一个新的字符串空间给PString 指针.

函数原型 procedure DisposeStr(P: PString); 在 heap 中释放一个字符串空间 PString指针.

函数原型 function IntToHex(Value: Integer; Digits: Integer): string;

函数原型 function IntToStr(Value: Integer): string;

函数原型 function StrToInt(const S: string): Integer;

函数原型 function StrToIntDef(const S: string; Default: Integer): Integer; 说明 Value : 欲转换的整数. Digits : 欲转换为几位数的 Hex.

函数原型 function Trim(const S: string): string; 将字符串前后的空白及控制字元清掉.

函数原型 function TrimLeft(const S: string): string; 将字符串左边的空白及控制字元清掉.

函数原型 function TrimRight(const S: string): string; 将字符串右边的空白及控制字元清掉.

函数原型 function AdjustLineBreaks(const S: string): string; 将字符串的换行符号全部改为#13#10

函数原型 function StrAlloc(Size: Cardinal): PChar; 配置字符串空间. 说明 Size=字符串最大空间+1

函数原型 function StrBufSize(Str: PChar): Cardinal; 传回由 StrAlloc 配置空间的大小

函数原型 function StrCat(Dest, Source: PChar): PChar; 字符串相加.

函数原型 function StrComp(Str1, Str2 : PChar): Integer; 比较两字符串大小.

函数原型 function StrCopy(Dest, Source: PChar): PChar; 拷贝字符串.

函数原型 procedure StrDispose(Str: PChar); 释放StrAlloc or StrNew所配置的空间.

函数原型 function StrECopy(Dest, Source: PChar): PChar; 拷贝字符串并传回字符串结束位址.

函数原型 function StrEnd(Str: PChar): PChar; 传回字符串结束位址.

函数原型 function StrIComp(Str1, Str2:PChar): Integer; 比较两字符串大小.(不分大小写)

函数原型 function StrLCat(Dest, Source: PChar; MaxLen: Cardinal): PChar;字符串相加.(指定长)

函数原型 function StrLComp(Str1, Str2: PChar; MaxLen: Cardinal):Integer; 比较两字符串大小.(指定长)

函数原型 function StrLCopy(Dest, Source: PChar; MaxLen: Cardinal): PChar; 拷贝字符串.(指定长)

函数原型 function StrLen(Str: PChar): Cardinal; 传回字符串长度.(不含终止位元)

函数原型 function StrLIComp(Str1, Str2: PChar; MaxLen: Cardinals): Integer; 比较两字符串大小.(指定长,不分大小写)

函数原型 function StrLower(Str: PChar): PChar; 将字符串全部转为小写字母.

函数原型 function StrMove(Dest, Source: PChar; Count:Cardinal): PChar; 从来源字符串拷贝n个Bytes到目标r串.(不含终止位元)

函数原型 function StrNew(Str: PChar): PChar; 配置字符串空间.

函数原型 function StrPas(Str: PChar): string; 将 null-terminated 字符串转为Pascal-style 字符串.

函数原型 function StrPCopy(Dest: PChar; Source: string): PChar; 拷贝 Pascal-style 字符串到null-terminated 字符串.

函数原型 function StrPLCopy(Dest: PChar; const Source: string; MaxLen: Cardinal): PChar; 拷贝 Pascal-style 字符串到null-terminated 字符串.(指定长)

函数原型 function StrPos(Str1, Str2: PChar): PChar; 子字符串在母字符串中的位置.(第一个位置) 说明 Str1 母字符串;Str2 子字符串

函数原型 function StrUpper(Str: PChar): PChar; 将字符串全部转为大写字母.

StrAlloc 配置一个最大长度为Size-1 的缓冲区给null 结尾字符串function StrAlloc(Size: Word): PChar;

StrBufSize 传回由StrAlloc 配置的字符串缓冲区内可以储存的最大字元数。StrBufSize( S: PChar ): Cardinal;

StrCat连结两个字符串并传回该字符串。function StrCat(Dest, Source: PCar): PChar;

StrComp 比照两个字符串。function StrComp(Str1, Str2 : Pchar): Integer;

StrCopy 拷贝Source 字符串到Dest 上。function StrCopy(Dest, Source: PChar): PChar

StrDispose 释回一个字符串空间。function StrDispose(Str:PChar);

StrECopy 拷贝Source 字符串到Dest 上并传回指向该字符串结尾的指针。function StrECopy(Dest, Surce: Pchar): Pchar;

StrEnd 传回一指针指向字符串的结尾function StrEnd(Str: Pchar): Pchar;

StrLCat 将Source 字符串连结到Dest 字符串后,并传回连结的字符串。function StrLCat(Dest, Source:PCar; MaxLen: Word): PChar;

StrIComp 比较两个字符串具无大小写区别function StrIComp(Str1, Str2:Pchar): Integer;

StrLComp 比较两个字符串到所指定的最大长度function StrLComp(Str1, Str2:Pchar; MaxLen: Word): Integer;

StrLCopy 从一字符串拷贝指定字元数到另一字符串Function StrLCopy(Dest,Source:PChar;MaxLen: Cardinal): PChar;

StrLen 传回字符串的长度。function StrLen(Str: PChar):Cardinal;

StrLIComp 比较两个字符串到所指定的最大长度具无大小写区别。function StrLIComp(Str1, Str2:PChar; MaxLen: Word):Integer;

StrLower 将字符串转成小写。function StrLower(Str: PChar):PChar;

StrMove 拷贝Count 字元数,从Source 到Dest字符串。function StrMove(Dest, Source:PChar; Count: Cardinal): PChar

StrNew 从堆积配置一个字符串。function StrNew(Str: PChar):PChar;

StrPas 将null 结尾字中转成一个Pascal 格式字符串。function StrPas(Str: Pchar):String;

StrPCopy 拷贝一个Pascal 格式字符串到一个null结尾字符串。Function StrPCopy(Dest:PChar;Source: String): PChar;

StrPLCopy 拷贝MaxLen 所指字元数,从Pascal格式字符串到null 结尾字符串。Function StrPLCopy(Dest:Pchar;cost Source: string;MaxLen: Word): PChar;

StrPos 传回一指针指向在Str1 内最先出现 Str2 字符串的位置。function StrPos(Str1, Str2: Pchar): Pchar;

StrScan 传回一指针指向在Str 字符串中第一个出现chr 字元的位置。function StrScan(Str: PChar; Chr: Char): PChar;

StrRScan 传回一指针指向在Str 子串中最后出现chr 字元的位置。function StrRScan(Str: Pchar; Chr: Char): PChar;

StrUpper 将字符串转成大写。function StrUpper(Str: PChar):PChar;

日期与时间函数 (Date and Time Routines)

Unit: SysUtils

Date 传回今天日期。function Date: TDateTime;

DateTimeToStr 将时间格式转为字符串。function DateTimeToStr(DateTime: TDateTime):String;

DateTimeToString 将时间格式转为字符串。procedure DateTimeToString(var Result: string;const Format: string;DateTime: TDateTime);

DateToStr 将日期格式转为字符串。function DateToStr(Date: TDateTime): String;

DayOfWeek 传回今天星期几。function DayOfWeek(Date: TDateTime): Integer; 传回值是一整数,1~7. 星期日为1.

DecodeDate 分解所指定的日期为年、月、日。procedure DecodeDate(Date: TDateTime;var Year, Month, Day:Word);

DecodeTime 分解所指定的日期为时、分、秒。procedure DecodeTime(Time: TDateTime;var Hour, Min, Sec,MSec: Word);

EncodeDate 传回将年、月、日所组合的日期格式。function EncodeDate(Year, Month, Day: Word):TDateTime;

EncodeTime 传回将时、分、秒所组合的时间格式。function EncodeTime(Hour, Min, Sec, MSec:Word): TDateTime;

FormatDateTime 以指定的格式传回日期时间。function FormatDateTime(const Format: string;DateTime: TDateTime):String;

Now 传回现在的日期时间。function Now: TDateTime;

StrToDate 将字符串转为日期格式。function StrToDate(const S:string): TDateTime;

StrToDateTime 将字符串转为日期时间格式function StrToDateTime(const S: string): TDateTime;

StrToTime 将字符串转为时间格式。function StrToTime(const S:string): TDateTime;

Time 传回现在时间。function Time: TDateTime;

TimeToStr 将时格式转为字符串。function TimeToStr(Time:TDateTime): String;

文件管理函数

Unit: SysUtils

函数原型 function ExtractFileDir(const FileName: string): string;

函数原型 function ExtractFileDrive(const FileName: string): string;

函数原型 function ExtractFileExt(const FileName: string): string;

函数原型 function ExtractFileName(const FileName: string): string;

函数原型 function ExtractFilePath(const FileName: string): string;

函数原型 function DeleteFile(const FileName: string): Boolean;

函数原型 function RenameFile(const OldName, NewName: string):Boolean;

函数原型 function FileExists(const FileName: string): Boolean;

函数原型 procedure FindClose(var F: TSearchRec);

函数原型 function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;

函数原型 function FindNext(var F: TSearchRec): Integer;说明 成功传回0

ChangeFileExt 变更文件的扩展名。

function ChangeFileExt(const FileName,Extension: string):string; DateTimeToFileDate 将Delphi 的日期格式转换为DOS的日期格式。

functionDateTimeToFileDate(DateTime:TDateTime): Longint;

DeleteFile 删除一个文件。function DeleteFile(const FileName: string):Boolean;

DiskFree 传回磁碟的可用空间。function DiskFree(Drive: Byte): Longint;

DiskSize 传回指定磁碟的容量大小。function DiskSize(Drive: Byte): Longint;

ExpandFileName 传回一个完整的路径及档名字符串。function expandFileName(const FileName: string):string;

ExtractFileExt 传回文件的扩展名。function ExtractFileExt(const FileName string):string;

ExtractFileName 传回文件的档名。function ExtractFileName(const FileName: string):string;

ExtractFilePath 传回文件的路径。function ExtractFilePath(const FileName: string):string;

FileAge 传回文件的年纪function FileAge(const FileName: string):Longint;

FileCreate 以指定档名建立一个文件。function FileCreate(const FileName: string):Integer;

FileClose 关闭指定的文件。procedureFileClose(Handle: Integer);

FileDateToDateTime 将DOS 的日期格式转为Delphi 的日期格式。function FileDateToDateTime(FileDate: Longint):TDateTime;

FileExists 判别文件是否存在。function FileExists(const FileName: string):Boolean;

FileGetAttr 传回文件属性。function FileGetAttr(const FileName: string):Integer;

FileGetDate 传回文件的日期及时间。function FileGetDate(Handle: Integer): Longint;

FileRead 从指定的文件读入资料。function FileRead(Handle:Integer; var Buffer;Count:Longint):Longint;

FileSearch 在目录列中搜寻指定的文件。function FileSearch(constName, DirList: string):string;

FileSeek 改变文件游标的位置。function FileSeek(Handle: Integer;Offset: Longint;Origin: Integer):Longint;

FileSetAttr 设定文件属性。function FileSetAttr(const FileName: string;Attr:Integer): Integer;

FileSetDate 设定文件的日期及时间。procedure FileSetDate(Handle: Integer; Age:Longint);

FileOpen 开启文件。function FileOpen(const FileName: string; Mode:Word): Integer;

FileWrite 写资料到文件。function FileWrite(Handle:Integer;const Buffer; Count:Longint): Longint;

FindClose 终止找寻第一个/下一个的动作。procedure FindClose(var SearchRec: TSearchRec);

FindFirst 寻找第一个符合的文件并设定其属性。

function FindFirst(const Path: string;Attr: Word; var F:TSearchRec): Integer;

FindNext 传回下一个符合的文件。function FindNext(var F:TSearchRec): Integer;

RenameFile 变更文件名。function RenameFile(const OldName,NewName: string):Boolean;

转换函数(Transfer Routines)

Unit: System

Chr 传回ASCII 码所对应的字元。function Chr(X: Byte): Char;

Delphi 源码任务 ( http://home.kimo.com.tw/bruce0211/ ) 打字整理15

High 传回叁数在范围内的最高值。function High(X);

Low 传回叁数在范围内的最低值。function Low(X);

Ord 传回一个有序型态所对应的顺序值。function Ord(X): Longint;

Round 将一个实数值四舍五入而传回整数值。function Round(X: Real):Longint;

Trunc 将一个实数值去尾而传回整数值。function Trunc(X: Real):Longint;

pred(x) pred('D')='C', pred(true)=1;

succ(x) succ('Y')='Z', succ(pred(x))=x

ord(x) 求x在字符集中的序号,如ord('A')=65

chr(x) chr(65)='A'

round(x) 四舍五入

trunc(x) trunc(4.8)=4,trunc('-3.6')=-3

upcase(x) upcase('a')='A'

hi(I) hi($2A30)=$2A

lo(I) lo($2A30)=$30

random(n) 产生[0,n)间的随机整数

sizeof(name) 求出某类型或变量在内存中占用的字节数

swap(num) 交换int的高低位 swap($3621)=$2136

Frac 求一个实数的小数部份

R := Frac(123.456); { 0.456 }

R := Frac(-123.456); { -0.456 }

Int 求一个实数的整数部份

R := Int(123.456); { 123.0 }

R := Int(-123.456); { -123.0 }

函数原型 function High(X); 传回注脚的最大值

函数原型 function Low(X); Low 传回注脚的最小值.

函数原型 function Ord(X): Longint; 传回列举型态的数值.

函数原型 function Round(X: Extended): Longint; 将实数转为整数.(有四舍五入)

函数原型 function Trunc(X: Extended): Longint; 将实数转为整数.(小数直接舍弃)

函数原型 function VarArrayCreate(const Bounds: array of Integer; VarType: Integer): Variant; 建立一个variant array.

函数原型 function VarArrayOf(const Values: array of Variant): Variant; 建立一个简单的一维variant array

函数原型 function VarArrayLock(var A: Variant): Pointer; 将variant阵列==>指定给一阵列变数.

函数原型 procedure VarArrayUnlock(var A: Variant); 解除上述的指定.

函数原型 function VarIsArray(const V: Variant): Boolean; 传回Variant是否为一个阵列.

函数原型 function VarIsNull(const V: Variant): Boolean; 传回Variant是否为NULL.

函数原型 function VarAsType(const V: Variant; VarType: Integer): Variant; 将Variant转为另外一个型态的Variant.

函数原型 procedure VarCast(var Dest: Variant; const Source: Variant; VarType: Integer);说明 VarType不可为varArray or varByRef.

函数原型 function VarType(const V: Variant): Integer; 传回Variant的型态.

函数原型 procedure VarClear(var V: Variant); 将variant清除,成为Unassigned状态.

函数原型 procedure VarCopy(var Dest: Variant; const Source: Variant); 拷贝一个variant.说明 与Dest:=Source;效果一样.

函数原型 function VarFromDateTime(DateTime: TDateTime): Vari ant; 将DateTime转为Variant.

函数原型 function VarToDateTime(const V: Variant): TDateTime; 将Variant转为DateTime.

函数原型 function Hi(X): Byte; 传回高位元数字.Hi($1234); { $12 }

函数原型 procedure Include(var S: set of T; I:T); 说明 加入I元素到S中. 加入一个元素到一组元素.

函数原型 function Lo(X): Byte; Lo($1234); { $34 }

函数原型 procedure Move(var Source, Dest; Count: Integer); 从来源变数拷贝n个Bytes到目的变数.

函数原型 function ParamCount: Integer; 直接由执行档后加上传入变数的个数.

函数原型 function ParamStr(Index: Integer): string;说明 ParamStr(0);传回执行档的名称及完整目录.

函数原型 function Random [ ( Range: Integer) ]; 说明 0<=X<Range

函数原型 function Swap(X); Swap 将一组变数的高低位元交换.

函数原型 function UpCase(Ch: Char): Char; 将一字元转为大写字母.

函数原型 procedure Dec(var X[ ; N: Longint]);说明 Dec(X) ==> X:=X-1; Dec(X,N) ==> X:=X-N; 使变数递减.

函数原型 procedure Inc(var X [ ; N: Longint ] );说明 Inc(X) ==> X:=X-1;Inc(X,N) ==> X:=X-N; 使变数递增.

函数原型 function Odd(X: Longint): Boolean; 检查是否为奇数.

函数原型 function Assigned(var P): Boolean; Assigned 测试指针变数是否为nil. 说明 当@P=nil ==> 传回FALSE

数学函数

Abs 传回叁数的绝对值。 function Abs(X);

ArcTan 传回正切函数的反函数值。 function ArcTan(X: Real): Real;

Cos 传回馀弦函数值 function Cos(X: Real): Real; (X 以弧度为单位)。

Exp 传回自然指数值。 function Cos(X: Real): Real;

Frac 传回叁数的小数部份。 function Frac(X: Real): Real;

Int 传回叁数的整数部份。 function Int(X: Real): Real;

Ln 传回自然对数值。 function Ln(X: Real): Real;

Pi 传回圆周率π的值。 function Pi: Real;

Sin 传回正弦函数值。 function Sin(X: Real): Real;

Sqr 传回叁数的平方。 function Sqr(X: Real): (Real);

Sqrt 传回叁数的平方根。 function Sqrt(X: Real): Real;

输出入函数Unit: System

AssignFile 指定一个文件到文件变数。procedure AssignFile(var f, String);

CloseFile 关闭文件。procedure CloseFile(var F);

Eof 判断是否已到文件结尾。

Typed or untyped files: functionEof(var F): BooleanText files:function Eof [ (var F: Text) ]:Boolean;

Erase 清除文件内容。procedure Erase(var F);

FilePos 传回目前文件游标位置。function FilePos(var F): Longint;

FileSize 传回文件的大小function FileSize(var F):Longint;

GetDir 传回指定磁碟的工作目录。procedure GetDir(D: Byte; var S: String);

IOResult 传回最后I/O 执行的状态。function IOResult: Integer;

MkDir 建立一子目录。procedure MkDir(S: String);

Rename 变更外部文件的档名。procedure Rename(var F; Newname);

Reset 开启一个已存在的文件。procedure Reset(var F [: File; Recsize: Word ] );

Rewrite 建立并开启一个新档。procedure Rewrite(var F: File [; Recsize: Word ] );

RmDir 删除一个空目录。procedure RmDir(S: String);

Seek 移动文件游标。procedure Seek(var F; N: Longint);

Truncate 删截目前位置以后的文件内容。procedure Truncate(var F);

浮点数转换函数 Unit: SysUtils

FloatToDecimal 将浮点数值分成小数及整数部份的数字传回。

procedure FloatToDecimal(var Result: TFloatRec;Value:Extended;Precision, Decimals:Integer);

FloatToStrF 依照指定格式将浮点数转成字符串描述。

function FloatToStrF(Value: Extended; Format:TFloatFormat;Precision,Digits: Integer): string;

FloatToStr 将浮点数转成字符串描述。function FloatToStr(Value: Extended): string;

FloatToText 将所给的浮点数值,分成小数及整数部份的数字依照格式传回。

function FloatToText(Buffer: Pchar; Value:Extended;Format:TFloatFormat;Precision,Digits: Integer): Integer;

FloatToTextFmt 将浮点数依照格式转成字符串传回。

function FloatToTextFmt(Buffer: PChar; Value:Extended;Format: PChar) :Integer;

FormatFloat 将浮点数值依照Format 格式传回。

function FormatFloat(constFormat: string;Value:Extended):string;

StrToFloat 将所给字符串转成一个浮点数值。

function StrToFloat(const S: string): Extended;

TextToFloat 将一个null 结尾字符串转成浮点数值

function TextToFloat(Buffer: PChar;var Value:Extended): Boolean;

流程控制函数 Unit: System

Break 终止循环。如for, while 及repeat 循环。

Continue 继续循环。如for, while 及repeat 循环。

Exit 离开目前的区块。procedure Exit;

Halt 停止程式的执行并回到作业系统。

动态配置函数Unit: System

Dispose 释回一个动态变数。procedure Dispose(var P: Pointer);

Free 释放一个物件复本。procedure Free;

FreeMem 释回一给定大小的动态变数。procedure FreeMem(var P:Pointer; Size: Word);

GetMem 建立一个指定大小的动态变数,并由Pointer 叁数传回位址。procedure GetMem(var P:Pointer; Size: Word);

New 建立一个新的动态变数,并将Pointer 叁数指向它。procedure New(var P: Pointer);function New(<pointer type>):Pointer;

MaxAvail 传回连续最大的可配置空间。function MaxAvail: Longint;

MemAvail 传回所有的可配置空间。function MemAvail: Longint;

指针和位址函数 Unit: System

addr 传回指定物件的位址。function Addr(X): pointer;

Assigned 判断是否一个函数或程序是nil function Assigned(var P):Boolean;

CSeg 传回CS 程式段暂存器的内容。function CSeg: Word;

DSeg 传回DS 资料段暂存器的内容。function DSegt: Word;

Ofs 传回叁数的偏移位址。function Ofs(X): Word;

Ptr 将所指定的节段及偏移位址组合到一个指针。function Ptr(Seg, Ofs: Word):Pointer;

Seg 传回叁数的节段位址。function Seg(X): Word;

SPtr 传回SP 堆叠存器的内容。function SPtr: Word;

SSeg 传回SS 堆叠段暂存器的内容。function SSeg: Word;

控制台函数 Unit: WinCrt

AssignCrt 将文字档连结到一个控制台视窗。 procedure AssignCrt(var f: Text);

ClrEol 清附游标位置到该行最后的所有字元。procedure ClrEol;

ClrScr 清附萤幕并重置游标至左上角。 procedure ClrScr;

CursorTo 移动游标至给定座标。 procedure CursorTo(X, Y:Integer);

DoneWinCrt 结束控制台视窗。 procedure DoneWinCrt;

GotoXY 移动游标至给定座标。 procedure GotoXY(X, Y: Byte);

InitWinCrt 建立控制台视窗。 procedure InitWinCrt;

KeyPressed 判断是否有一按键。 function KeyPressed:Boolean;

ReadBuf 从控制台视窗读入一行。 function ReadBuf(Buffer: Pchar;Count: Word):

ReadKey 读取按键字元。function ReadKey: Char;

ScrollTo 卷动控制台视窗至显示位置。procedure ScrollTo(X, Y: Integer);

TrackCursor 卷动控制台视窗宜到游标可见。procedure TrackCursor;

WhereX 传回游标的X 座标。function WhereX: Byte;

WhereY 传回游标的Y 标标。function WhereY: Byte;

WriteBuf 写入一区块字元到控制台视窗。procedure WriteBuf

WriteChar 写一个字元到控制台视窗。procedure WriteChar(CH: Char);