社区
数据库
帖子详情
高分请教,怎么把数据中binary字符串,转化为0x开头的16进制形式的字符串?
火鸟33
2004-04-16 04:05:28
类似的二进制数据,怎么处理阿?
...全文
395
23
打赏
收藏
高分请教,怎么把数据中binary字符串,转化为0x开头的16进制形式的字符串?
类似的二进制数据,怎么处理阿?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
火鸟33
2004-04-21
打赏
举报
回复
insert into table (testbinary) values (0x00123124)
就这样,0x00123124 是从上面的程序转化出来的
runall
2004-04-17
打赏
举报
回复
mark
wwjj007
2004-04-17
打赏
举报
回复
请问楼主,你是如何用程序的方式实现将值存入BINARY字段中
zhangcrony
2004-04-17
打赏
举报
回复
已经清楚了,那就顶一下
火鸟33
2004-04-17
打赏
举报
回复
char *pTmp = NULL;
需要改为 unsigned char *pTmp = NULL;
不然会丢失8以上的字符
laker_tmj
2004-04-17
打赏
举报
回复
up learn
火鸟33
2004-04-17
打赏
举报
回复
char *sBinary;
改为 char sBinary[258];
火鸟33
2004-04-17
打赏
举报
回复
自己解决了,结果完全一致:
_variant_t varBLOB;
char *pTmp = NULL;
char *sBinary;
sprintf(sBinary,"%s","0x");
long nSize = pRst->GetFields()->GetItem(tmpstr1.c_str())->ActualSize;
varBLOB = pRst->GetFields()->GetItem(tmpstr1.c_str())->GetValue();
//write bin file
//声明安全数组
::SafeArrayAccessData(varBLOB.parray, (void **)&pTmp);
for(int j=0;j<nSize;j++)
{
int nTmp = pTmp[j];
sprintf(sBinary + j*2 + 2,"%02X",nTmp);
};
sBinary[nSize*2+2] = '\0';
::SafeArrayUnaccessData(varBLOB.parray);
cout<<sBinary<<endl;
自己看了下VARIANT的说明文档,对于不是一个单位的数据,如不是单字符,单int,单float等等,数据都放在parray的pvData数组中,但是这个不能直接访问,要通::SafeArrayAccessData
做连接才能访问,基本是这样。
火鸟33
2004-04-17
打赏
举报
回复
Delphi可以,不知道怎么实现的
itmaster
2004-04-17
打赏
举报
回复
学习
runall
2004-04-17
打赏
举报
回复
帮你up
这个问题很老了,可是我也没有看见谁有解决方法
火鸟33
2004-04-17
打赏
举报
回复
up
火鸟33
2004-04-16
打赏
举报
回复
表:
CREATE TABLE [TestBinary] (
[RecID] [int] IDENTITY (1, 1) NOT NULL ,
[vb] [binary] (8) NOT NULL CONSTRAINT [DF_TestBinary_vb] DEFAULT (0x00),
[SendFlag] [bit] NOT NULL CONSTRAINT [DF_TestBinary_SendFlag] DEFAULT (0),
CONSTRAINT [PK_TestBinary] PRIMARY KEY CLUSTERED
(
[RecID]
) ON [PRIMARY]
) ON [PRIMARY]
GO
插入数据:
INSERT INTO TestBinary (vb) VALUES (0x1234567891234567)
现在要在程序中把0x1234567891234567这个串打印出来,谁能,我给300分,
我能取出串,但是值不知道变成社么廖(不知道取那里还是还要再次变换?)。
火鸟33
2004-04-16
打赏
举报
回复
是binary 不是BLOB字段 上面代码通不过的,呵呵
普通的存在数据库中的二进制字符串
xuanzg
2004-04-16
打赏
举报
回复
怎么从_variant_t搞出来:
//blob 型纪录字段
if(viValue.vt == (VT_ARRAY | VT_UI1))
{
//得到数据长度
long lDatalen = m_pRecordset->GetFields()->GetItem(viIndex)->ActualSize;
//得到二进制数据
viValue = m_pRecordset->GetFields()->GetItem(viIndex)->GetChunk(lDatalen);;
char *pTmp = NULL;
//write bin file
//声明安全数组
::SafeArrayAccessData(viValue.parray, (void **)&pTmp);
CString cszbFileName;
CFile fileBlob;
//设置二进制文件路径
cszbFileName.Format("%s\\%d_%d.bin", ::GetDirFormFileName(cszFilename), dwRecordID, i);
fileBlob.Open(cszbFileName, CFile::modeCreate|CFile::modeWrite, NULL);
fileBlob.Write(pTmp, lDatalen);
fileBlob.Close();
::SafeArrayUnaccessData(viValue.parray);
shenke410
2004-04-16
打赏
举报
回复
gufengduyu(聪明的呆呆龙) 厉害!
xuanzg
2004-04-16
打赏
举报
回复
void Cnethlp::BufToHex(BYTE * Instr, BYTE * OutStr,long len)
{
CString cszRc;
for(long i(0); i< len; i++)
{
CString cszTmp;
cszTmp.Format("%02X", Instr[i]);
cszRc += cszTmp;
}
strcpy((char*)OutStr, (char*)(LPCTSTR)cszRc);
}
火鸟33
2004-04-16
打赏
举报
回复
这个我知道,问题是我的数据在_variant_t 中(从ado中读出的),怎么从_variant_t搞出来
ymbymb
2004-04-16
打赏
举报
回复
char c = 'A';
CString str;
str.Format("0x%02X");
gufengduyu
2004-04-16
打赏
举报
回复
//char* chOld为二进制字节串的指针
//char* chNew为输出的字符串,调用时传入一个够大得字符串数组即可
//nLen为二进制字节串的长度
int Convert_BinByteToHex(char* chOld, char* chNew ,int nLen)
{
int i;
int nTemp;
unsigned char cTemp;
for(i = 0; i < nLen; i++){
cTemp = chOld[i];
nTemp = cTemp;
sprintf(chNew + i*2, "%02x", nTemp);
}
chNew[nLen*2] = '\0';
}
加载更多回复(3)
二进制与十六进制深度比对工具HexCmp实战应用
计算机底层以二进制(
Binary
)
形式
存储和处理
数据
,每一位(bit)只能表示0或1。8个比特组成一个字节(Byte),是内存寻址的最小单位。由于二进制
字符串
冗长难读,十六进制(Hexadecimal)被广泛用于可视化表示二进制内容——每两位十六进制数精确对应一个字节(如A3表示10100011其基数为16,使用0-9和A-F字符,极大提升了可读性。# 示例:字节到十六进制转换byte_data = b'\xA3\x0F' # 二进制
数据
A3 0F。
易语言实现十六进制字符编辑框完整源码解析
易语言是
中
国本土开发的一种面向
中
文用户的编程语言,其以
中
文关键字和可视化编程界面著称,降低了编程门槛,非常适合初学者和
中
小型软件开发项目。它支持Windows平台下的图形界面应用程序开发,具有丰富的控件库和事件驱动机制。十六进制字符编辑框是软件开发
中
常见的一种输入控件,广泛应用于
数据
通信、嵌入式系统调试、内存查看器等场景
中
。与常规文本编辑框不同,十六进制编辑框要求用户输入的字符必须符合十六进制的格式规范,即只能包含数字字符0-9和字母A-F(或小写a-f。
Windows平台二进制文件深度分析工具wxMEdit3.1实战应用
htmltable {th, td {th {pre {简介:wxMEdit3.1是一款专为Windows系统打造的二进制文件读取与编辑工具,支持对各类二进制
数据
进行逐字节查看、搜索和修改,广泛应用于网络安全、软件调试、逆向工程和
数据
恢复等领域。该工具可解析可执行文件、日志、
数据
块等非文本格式内容,帮助用户深入理解程序底层结构,辅助恶意代码分析、系统日志追踪及编译后机器码研究。配合“01Read”教程文件,用户能够快速掌握其核心功能,提升在二进制
数据
处理方面的实践能力。
16×16点阵汉字显示程序设计与实现
字模数组是点阵字体的核心
数据
结构。通常以字符编码为索引,每个字符对应一个字模数组。例如,ASCII字符集
中
的字符可以通过其ASCII码值作为索引访问对应的字模。以下是一个完整的16×16点阵字库的定义示例(以ASCII字符 ‘A’ 为例):// ...C/C++作为经典的系统级编程语言,既可以用于开发控制台程序,也可以通过图形库支持开发图形界面应用。控制台程序主要依赖标准输入输出(stdio)进行交互,界面简单、交互方式单一,适用于命令行工具、脚本执行等场景。
sscom串口助手——高效串口调试工具实战应用
串口通信作为嵌入式系统
中
最基础的通信方式,依赖TXD与RXD引脚实现全双工
数据
传输。其采用异步通信机制,无需时钟同步信号,通过起始位、8位
数据
位和停止位构成标准帧结构,在9600至115200bps常见波特率下稳定运行。
数据
收发遵循UART协议,抗干扰强且硬件成本低,广泛应用于工业控制与设备调试
中
。在此基础上,sscom串口助手作为跨平台调试利器,不仅支持灵活配置波特率、
数据
位、校验位等参数(如图),还能以ASCII、HEX模式解析
数据
,满足文本命令输入与二进制协议分析双重需求。
数据库
4,017
社区成员
39,806
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章