VC++6.0下如何读写.dat文件?

例如控制一次从.dat文件每次读取4位二进制数,然后将其转化为16进制输出在一个.txt文件下另外不明白的是如何控制要读写文件的路径,初学者,请高手详解!谢谢回答,可能是... 例如控制一次从.dat文件每次读取4位二进制数,然后将其转化为16进制输出在一个.txt文件下另外不明白的是如何控制要读写文件的路径,初学者,请高手详解!
谢谢回答,可能是我举的例子不当,但是我主要不明白的使用什么命令可以完成控制从.dat的文档里每次读24位,然后写为每6位即64进制的文本文件
非常感谢达人的回答,还差一点就彻底明白了:
1.如何控制要读取文件的路径,比如要读这个文件d:\\data\code.dat 是哪一条语句控制的
2.我想从.dat的文档里每次读24位,然后写为每6位即64进制的文本文件是应该这样吗:
DWORD dwFileLen=file.GetLength(24);
DWORD dwstrLen=(dwFileLen*6);
3.如何从读取的这24写位4个6位(64进制)的字符,是要定义“一个”长度为6的结构数组吗 如何将24依次给这个数组赋值呢?
比如:000000 000010 000010 000001 输出为accb
请达人仔细讲解!!!
哥哥,不好意思,这样还似乎有些绕弯啊,我要编写的程序不是严格意义的64进制是用于网络上Base64编码,(即从二进制文件取出每3字节一组,共24位平分为4组6位数,6位二进制可以表示“A~Z,a~z,0~9,+,-”共64个字符。)
不管怎样,非常感谢解答,学到不少
展开
 我来答
百度网友73d8a3d6b
2008-05-15 · TA获得超过650个赞
知道答主
回答量:245
采纳率:0%
帮助的人:330万
展开全部
===============================
大汗!问题越来越多了!
1.如果你是用VC的.
CFileDialog filedlg(TRUE);//设置为TRUE读文件模式
filedlg.m_ofn.lpstrTitle="打开文件";
filedlg.m_ofn.lpstrFilter="(*.dat)\0All File(*.*)\0*.*\0\0";//过滤器:文件保存类型;分隔符是\0;结束符是\00;\0是NULL
if(IDOK==filedlg.DoModal())//显示打开文件路径对话框
{.....}
2.DWORD dwFileLen=file.GetLength(24);
DWORD dwstrLen=(dwFileLen*6);
狂晕!GetLength()里面不要输数
file.GetLength()得到的是整个文件的字节数,不是位数,一个字节8位.在结构与联合中可以定义位.其它的变量类型,最小的是8位.
3.
==========================
//你说不清,我可费了劲了!再看下面!
1.定义结构数组指针
struct bit_struct
{
unsigned data1:6;
unsigned data2:6;
unsigned data3:6;
unsigned data4:6;
};//定义3个8位变量的结构用来读\存文件用
bit_struct *pbit_struct;
---------------------------
2.读取文件*.dat的长度(字节数)
DWORD dwFileLen=file.GetLength();
//file 是在打开文件时声明的CFile的对象
//CFile file;
-------------------------
3.定义结构数组的尺寸
DWORD dwstrLen=dwFileLen*8/24;
//dwstrLen是你定义的结构体的字节数(注意:不是结构数组的字节数)
pbit_struct=new SiWei[dwstrLen];
//定义结构数组的尺寸
-------------------------
4.从文件中以24位向结构数组中写入
file.Read(pstr,dwFileLen);
--------------------------
5.将数值转为相应的字符
先略,让我想一想
比如:000000 000010 000010 000001 输出为accb 这里,我不太明白.
如果accb是数值的话,应该对应的二进制为
1010110011001011
如果accb是字符,对应的二进制为
1100001 1100011 1100011 1100010
你是想怎样转换呀!

-----------------------------
6.向文件中写入转换后的数据
file.Write(pstr,dwFileLen);
//这条语句我没有查,你自已查一下吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式