当前位置:编程学习 > Delphi >>

有谁知道速达3000权限表存的2进制数据怎么导出来,急用,delphi语言

我最近在扒速达的软件 做权限时他在软件设置的权限保存后存到一个数据库二进制字段中,我用TBlobField(qry1.FieldByName('privilege')).SaveToFile('D:\1.txt');导出的全是乱码, 0x01000000180000007379736D07686167 这个是其中一个人的简单权限,导出来是 ↑ sysm·hag 有哪位高手能告诉我怎么导出来不是乱码,最好有代码,分不是问题
追问:GetAsBytes   这个方法我没找到 delphi语言我的比较老的版本 delphi7第一个方法导出时报错了 第二个导出的还是那些乱码 ,估计速达好像给加密或者了
答案:这个字段中包含二进制数据和文本串,需要剔除前8个字节的二进制数据
type
  TBytes = array of Byte;

var
ms : TMemoryStream;
L : Integer;
abData : TBytes;
......
ms := TMemoryStream.Create;
TBlobField(qry1.FieldByName('privilege')).GetAsBytes( abData );
L := Length( abData ) - 8;
ms.Size := L;
Move( abData[8], PByte( ms.Memory )^, L );
ms.SaveToFile( 'D:\1.txt' );
ms.Free;

上一个:delphi怎样为button加个图片
下一个:delphi 怎么样设计和编写进货单

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,