社区
数据库
帖子详情
高分请教,怎么把数据中binary字符串,转化为0x开头的16进制形式的字符串?
火鸟33
2004-04-16 04:05:28
类似的二进制数据,怎么处理阿?
...全文
366
23
打赏
收藏
高分请教,怎么把数据中binary字符串,转化为0x开头的16进制形式的字符串?
类似的二进制数据,怎么处理阿?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
易语言实现十六进制字符编辑框完整源码解析
易语言是
中
国本土开发的一种面向
中
文用户的编程语言,其以
中
文关键字和可视化编程界面著称,降低了编程门槛,非常适合初学者和
中
小型软件开发项目。它支持Windows平台下的图形界面应用程序开发,具有丰富的控件库和事件驱动机制。十六进制字符编辑框是软件开发
中
常见的一种输入控件,广泛应用于
数据
通信、嵌入式系统调试、内存查看器等场景
中
。与常规文本编辑框不同,十六进制编辑框要求用户输入的字符必须符合十六进制的格式规范,即只能包含数字字符0-9和字母A-F(或小写a-f。
JavaScript基本
数据
类型:BigInt
JavaScript基本
数据
类型:BigInt
蓝牙 16 位通用唯一标识符 (UUID)
https://www.bluetooth.com/specifications/assigned-numbers/ 16 位的通用唯一标识符 (UUID)分类 分配类型 分配UUID段 作用 GATT Service
0x
1800 ~
0x
26FF 服务类型,用来识别具体是哪个服务。 GATT Unit
0x
2700 ~
0x
27FF 计量单位,如:km/h, kg。 GATT Declarations
0x
2800 –
0x
28FF 属性类型,如:首要/次要/包含/特征。 .
VB实现
数据
库存储与读取图片完整示例代码
BLOB(
Binary
Large Object)是一种用于存储大量二进制
数据
的
数据
库字段类型。它常用于存储非结构化
数据
,如图像、音频、视频、PDF文档等。BLOB类型在
数据
库
中
不进行内容解析,仅作为原始字节流存储。不同的
数据
库系统对BLOB的支持略有不同,但其核心概念保持一致。以MySQL为例,BLOB类型有以下几种:类型最大存储容量说明TINYBLOB255 字节适用于极小的二进制
数据
BLOB64 KB常规使用,适合大多数图片存储。
点阵取模软件设计与实战应用
点阵取模软件是嵌入式系统开发与硬件图形处理
中
的基础工具,主要用于将字符或图像转换为由像素点构成的矩阵
数据
。这类软件通过设定分辨率(如8x8、16x16)和扫描方式(如行优先或列优先),将视觉信息编码为设备可识别的二进制或数组格式。其核心功能包括字符点阵生成、图像数字化处理、字模格式转换与管理。在LED显示屏、LCD模块、打印机等设备
中
,点阵取模软件承担着从抽象字符到具体像素映射的关键桥梁作用。
数据库
4,017
社区成员
39,807
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章