首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

文件存取有关问题!100分

2012-01-12 
文件存取问题!100分!一个二进制文件的内容如下:0000A4B4C4B4040506我想读取第5个字节开始至第8个字节(A4B4

文件存取问题!100分!
一个二进制文件的内容如下:

0000A4B4C4B4040506

我想读取第5个字节开始至第8个字节(A4B4C)到内存里,并将它保留到另一个新的文件中(ver.dat),新的文件里只有A4B4C。我该怎么做?谢谢高手了!

[解决办法]
一个二进制文件的内容如下: 

0000A4B4C4B4040506
这是一个16进制显示的,你是不是用UltraEdit等工具打开的这个文件

如果是的话,两个数据表示一个字节,00 00 A4 B4 C4 B4 04 05 06
因此第5个字节开始至第8个字节不是A4B4C
要读字节,把它当作普通文件一样使用CreateFile,ReadFile,然后存取ReadFile所使用得Buf就可以了,这个Buf的内容如下:
Buf[0]=0x00;
Buf[1]=0x00;
Buf[2]=0xA4;
Buf[3]=0xB4;
Buf[4]=0xC4;//第五个
Buf[5]=0xB4;//数组下标从0开始,因此这是第六个
Buf[6]=0x04;
Buf[7]=0x05;//这是第八个
Buf[8]=0x06;
.....
[解决办法]
可以设读出多少啊.
CFile f;
f.open(name, CFile::modeRead);
f.Seek(4, CFile::begin);
char buff[4] = {0};
f.Read(buff, 4);
[解决办法]

C/C++ code
FILE* fp=fopen( "xx1","rb");fseek(fp,4,SEEK_SET);char sz[4]={0};fread(sz,sizeof(char),4,fp);fclose(fp);FILE* fp2=fopen( "xx2","wb");fwrite(sz,sizeof(char),4,fp2);fclose(fp2);
[解决办法]
C/C++ code
    CFile file;    file.Open(TEXT("*.dat"),CFile::modeRead|CFile::typeBinary);    file.Seek(2,CFile::begin);    BYTE buff[3];    file.Read(buff,3);    CFile saveFile;    saveFile.Open(TEXT("*.dat"),CFile::modeCreate|CFile::modeWrite|CFile::typeBinary);    saveFile.Write(buff,3);        file.Close();    saveFile.Close();
[解决办法]
CFile 是MFC的类 你建立的是MFC的工程吗?

不是的话 设置 Using MFC Share

热点排行