DELPHI常用函数
2010-11-29 10:39
274 查看
一 生成一个GUID字符串,并且把左右花括弧
function GetNewGuid: String;
var
TmpGuid: TGUID;
begin
Result := '';
CreateGUID(TmpGUID);
Result := GUIDToString(TmpGUID);
Result := StringReplace(Result, '{', '', []);
Result := StringReplace(Result, '}', '', []);
end;
如果数据库中级联的表之间出错了,要重新整理或者干脆删除,这个字段就很好处理,因为它是唯一的,不会重复的。
二 字符串转化为十六进制
function StrToHex(Value: String): String;
var
i: integer;
begin
Result := '';
for i := 1 to Length(Value) do
begin
Result := Result + IntToHex(ord(Value[i]), 2);
end;
end;
三 十六进制转化为字符串
function HexToStr(Value: String): String;
var
Pos: Integer; HexStr: String;
begin
Result := ''; Pos := 1;
if (Length(value) mod 2) <> 0 then Value := '0' + Value; //如果长度为奇数则补0。
while pos < Length(Value) do
begin
HexStr := Copy(Value, Pos, 2);
Result := Result + Chr(StrToInt('$' + HexStr));
Pos := Pos + 2;
end;
end;
四 数组转化为字符串
五 字符串转化为数组
六 存储为文本文件函数
七 Stream的压缩和解压
七 控制台调试函数
八 取函数版本号
九 取文件大小
十 取文件修改日期
function GetNewGuid: String;
var
TmpGuid: TGUID;
begin
Result := '';
CreateGUID(TmpGUID);
Result := GUIDToString(TmpGUID);
Result := StringReplace(Result, '{', '', []);
Result := StringReplace(Result, '}', '', []);
end;
如果数据库中级联的表之间出错了,要重新整理或者干脆删除,这个字段就很好处理,因为它是唯一的,不会重复的。
二 字符串转化为十六进制
function StrToHex(Value: String): String;
var
i: integer;
begin
Result := '';
for i := 1 to Length(Value) do
begin
Result := Result + IntToHex(ord(Value[i]), 2);
end;
end;
三 十六进制转化为字符串
function HexToStr(Value: String): String;
var
Pos: Integer; HexStr: String;
begin
Result := ''; Pos := 1;
if (Length(value) mod 2) <> 0 then Value := '0' + Value; //如果长度为奇数则补0。
while pos < Length(Value) do
begin
HexStr := Copy(Value, Pos, 2);
Result := Result + Chr(StrToInt('$' + HexStr));
Pos := Pos + 2;
end;
end;
四 数组转化为字符串
TBuffer = array [0..65535] of byte; function Buffer2String(Buffer: TBuffer; BufferSize: Integer): String; var i: Integer; begin Result := ''; for i := 0 to BufferSize - 1 do Result := Result + Char(Buffer[i]); end;
五 字符串转化为数组
TBuffer = array [0..65535] of byte; function String2Buffer(Data: String; var BufferSize: Integer): TBuffer; var i: Integer; begin FillChar(Result, SizeOf(TBuffer), #0); BufferSize := Length(Data); for i := 0 to BufferSize - 1 do Result[i] := Ord(Data[i + 1]); end;
六 存储为文本文件函数
procedure WriteTxtFile(FileName: string; Data: string); var TF: TextFile; begin AssignFile(TF, FileName); if not FileExists(FileName) then Rewrite(TF) else Append(TF); Writeln(TF, Data); CloseFile(TF); end;
七 Stream的压缩和解压
procedure Compress(var CompressedStream: TMemoryStream); var SourceStream: TCompressionStream; DestStream: TMemoryStream; Count: Integer; begin Count := CompressedStream.Size; DestStream := TMemoryStream.Create; SourceStream := TCompressionStream.Create(clMax, DestStream); try CompressedStream.SaveToStream(SourceStream); SourceStream.Free; CompressedStream.Clear; CompressedStream.WriteBuffer(Count, SizeOf(Count)); CompressedStream.CopyFrom(DestStream, 0); finally DestStream.Free; end; end; procedure UnCompress(const CompressedStream: TMemoryStream); var Buffer: PChar; Count: Integer; DestStream: TMemoryStream; SourceStream: TDecompressionStream; begin CompressedStream.Position := 0; CompressedStream.ReadBuffer(Count, SizeOf(Count)); GetMem(Buffer, Count); DestStream := TMemoryStream.Create; SourceStream := TDecompressionStream.Create(CompressedStream); try SourceStream.ReadBuffer(Buffer^, Count); DestStream.WriteBuffer(Buffer^, Count); DestStream.Position := 0; CompressedStream.LoadFromStream(DestStream); finally FreeMem(Buffer); DestStream.Free; SourceStream.Free; end; end;
七 控制台调试函数
procedure WriteCon1(Data: variant; CloseConsole: Boolean = False); var Temp: string; begin try if ParamStr(1) <> 'debug' then Exit; AllocConsole; Temp := ParamStr(0) + Char(9) + string(Data) + #$0D + #$0A; FileWrite(GetStdHandle(STD_OUTPUT_HANDLE), Temp[1], length(Temp)); if CloseConsole then FreeConsole; except FreeConsole; end; end;
八 取函数版本号
function GetFileVersion1(FileName: string): string; var n, Len: DWORD; Buf : PChar; Value: Pointer; szName: array [0..255] of Char; Transstring: string; begin Result := ''; Len := GetFileVersionInfoSize(PChar(FileName), n); if Len > 0 then begin Buf := AllocMem(Len); if GetFileVersionInfo(Pchar(FileName), n, Len, Buf) then begin Value := nil; VerQueryValue(Buf, '/VarFileInfo/Translation', Value, Len); if Value <> nil then Transstring := IntToHex(MakeLong(HiWord(LongInt(Value^)), LoWord(LongInt(Value^))),8); StrPCopy(szName, '/stringFileInfo/' + Transstring + '/FileVersion'); if VerQueryValue(Buf, szName, Value, Len) then Result := StrPas(Pchar(Value)); end; FreeMem(Buf, n); end; end;
九 取文件大小
function FileSizeEx(const FileName: string): Int64; var Info: TWin32FindData; Hnd: THandle; begin Result := -1; try Hnd := FindFirstFile(PChar(FileName), Info); if (Hnd <> INVALID_HANDLE_VALUE) then begin Windows.FindClose(Hnd); Int64Rec(Result).Lo := Info.nFileSizeLow; Int64Rec(Result).Hi := Info.nFileSizeHigh; end; except end; end;
十 取文件修改日期
function GetFileModifyDate(FileName: String): TDateTime; var vSearchRec: TSearchRec; LocalFileTime: TFileTime; I: Integer; begin Result := 0 ; try if FindFirst(FileName, faAnyFile, vSearchRec) = 0 then begin FileTimeToLocalFileTime(vSearchRec.FindData.ftLastWriteTime, LocalFileTime); FileTimeToDosDateTime(LocalFileTime, LongRec(I).Hi, LongRec(I).Lo); Result := FileDateToDateTime(I); FindClose(vSearchRec); end; except end; end;
相关文章推荐
- Delphi常用函数参考
- Delphi7.0常用函数速查手册
- delphi 常用函数和常见问题的解决方案(更新中......)
- Delphi中常用字符串处理函数
- delphi 常用函数
- 常用的BCB & Delphi 函数
- Delphi 常用API 函数
- Delphi常用函数
- Delphi 常用API 函数
- Delphi 变体类型(Variant)的介绍(流与变体类型的相互转换、变体类型常用的函数)
- Delphi 7.0常用函数速查手册
- Delphi 常用API 函数(好多都没见过)
- delphi常用函数
- Delphi常用函数汇总
- delphi中常用字符处理函数(系统未提供的)
- delphi 常用函数库1
- Delphi常用函数列表
- Delphi 7.0常用函数速查手册
- Delphi 常用API 函数
- Delphi 7.0常用函数速查手册