用VC6.0 怎么样把bmp,jpg格式图片转化成二进制数据流写入SQL数据库

用VC6.0 怎么样把bmp,jpg格式图片转化成二进制数据流写入SQL数据库,第1张

作为2二进制文件打开,一个字节一个字节地读入,写出,直到EOF(文件结束符)。当然写出时要按数据库约定的方式。

下面作为普通文件输出

FILE *fin,*fout

void main()

{

int c

fin=fopen( "duck.jpg","rb")// 作为2二进制文件打开

fout=fopen("tmp.jpg","wb")

while(1){

c=fgetc(fin) // 一个字节一个字节地读入

if (feof(fin)) break// 直到EOF

fputc ( c , fout )// 改此句,让它符合数据库约定。

}

}

你的class里面成员也有class,所以直接用write函数可能会出问题,对于这种情况可以使用MFC提供的“序列化”的功能,把一个class写入二进制文件

如果class里面的成员全是基本数据类型,用write函数写入文件不会出问题。

如果你的文件中只存字符串的话,那就算存成二进制文件,它实际上还是ASCII码文件。但我还是给一个例子吧。

CFile file

file.Open("d:/a",CFile::modeWrite|CFile::modeCreate|CFile::typeBinary)

file.Seek(0,CFile::begin)

file.Write("123",3)

file.Close()

虽然我用了CFile::typeBinary表示写一个二进制文件,但如果文件中只有字符串的话,这个a文件实际上还是ASCII码文件,你用记事本都可以正常打开。

但如果文件中确实包括了二进制数据的话,比如

int a=1

file.Write(&a,sizeof(a))

的话,用记事本打开就会有乱码了,这时候就要用二进制编辑器打开,比如UltraEdit。

另外,读取文件时,要用Open(文件名,CFile::modeRead)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9509103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存