数据转换(字节数组转文件、文件转字节数组、16进制字符转字节数组、字节数组转16进制字符)

来源:互联网 发布:个人简介网站html源码 编辑:程序博客网 时间:2024/05/21 15:38

字节数组转文件

procedure ByteArrayToFile(const ByteArray: TByteDynArray;  const FileName: string);var  Count: integer;  F: file of Byte;  pTemp: Pointer;begin  AssignFile(F, FileName);  Rewrite(F);  try    Count := Length(ByteArray);    pTemp := @ByteArray[0];    BlockWrite(F, pTemp^, Count);  finally    CloseFile(F);  end;end;

文件转字节数组

function FileToByteArray(const FileName: string): TByteDynArray;const  BLOCK_SIZE = 1024;var  BytesRead, BytesToWrite, Count: integer;  F: file of Byte;  pTemp: Pointer;begin  AssignFile(F, FileName);  Reset(F);  try    Count := FileSize(F);    SetLength(Result, Count);    pTemp := @Result[0];    BytesRead := BLOCK_SIZE;    while (BytesRead = BLOCK_SIZE) do    begin      BytesToWrite := Min(Count, BLOCK_SIZE);      BlockRead(F, pTemp^, BytesToWrite, BytesRead);      pTemp := Pointer(LongInt(pTemp) + BLOCK_SIZE);      Count := Count - BytesRead;    end;  finally    CloseFile(F);  end;end;


16进制字符转字节数组

function HexStrToByteArray(const HexStr: string): TByteDynArray;var  aByte: TByteDynArray;  i: Integer;begin  Result := nil;  try    SetLength(aByte, Length(HexStr) div 2);    for i := 1 to Length(HexStr) div 2 do      aByte[i - 1] := StrToInt('$' + HexStr[i * 2 - 1] + HexStr[i * 2]);    Result := aByte;  except    on e: Exception do    begin      Result := nil;    end;  end;end;


字节数组转16进制字符

function ByteArrayToHexStr(const ByteArray: TByteDynArray): string;var  i: Integer;begin  Result := '';  try    for i := 0 to Length(ByteArray) - 1 do      Result := Result + Format('%x', [ByteArray[i]]);  except    on e: Exception do    begin      Result := '';    end;  end;end;


  



0 0
原创粉丝点击