社区
数据库
帖子详情
高分请教,怎么把数据中binary字符串,转化为0x开头的16进制形式的字符串?
火鸟33
2004-04-16 04:05:28
类似的二进制数据,怎么处理阿?
...全文
401
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实战应用
由于二进制
字符串
冗长难读,十六进制(Hexadecimal)被广泛用于可视化表示二进制内容——每两位十六进制数精确对应一个字节(如A3表示10100011其基数为16,使用0-9和A-F字符,极大提升了可读性。# 示例:字节到十六...
易语言实现十六进制字符编辑框完整源码解析
十六进制字符编辑框是软件开发
中
常见的一种输入控件,广泛应用于
数据
通信、嵌入式系统调试、内存查看器等场景
中
。与常规文本编辑框不同,十六进制编辑框要求用户输入的字符必须符合十六进制的格式规范,即只能包含...
Windows平台二进制文件深度分析工具wxMEdit3.1实战应用
htmltable {th, td {th {pre {简介:wxMEdit3.1是一款专为Windows系统打造的二进制文件读取与编辑工具,支持对各类二进制
数据
进行逐字节查看、搜索和修改,广泛应用于网络安全、软件调试、逆向工程和
数据
恢复等领域...
16×16点阵汉字显示程序设计与实现
以下是一个完整的16×16点阵字库的定义示例(以ASCII字符 ‘A’ 为例):// ...C/C++作为经典的系统级编程语言,既可以用于开发控制台程序,也可以通过图形库支持开发图形界面应用。控制台程序主要依赖标准输入输出...
LabVIEW点阵显示文字数字实战项目详解
点阵图(Bitmap)由规则排列的像素点阵组成...特性ASCIIUTF-8字符范围0–127可变长(1–4字节)固定2字节(基本平面)兼容性是UTF-8子集向后兼容ASCII不兼容ASCIILabVIEW
字符串
默认✅❌(需转换)⚠️(部分函数支持)
数据库
4,017
社区成员
39,806
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章