读一个文件,将格式如十六进制编辑器(如WinHex) 样式显示出来
来源:互联网 发布:微信拓客php开发 编辑:程序博客网 时间:2024/05/14 10:02
读一个文件,格式如十六进制编辑器
bookaa的代码
#include "stdio.h"
void printhex_off(DWORD off, void* p, int len, I_MsgBack* pfn)
{
char s[17];
s[16] = 0;
PBYTE pbyte = (PBYTE)p;
while (len)
{
pfn->printf("%04x ", off >> 4 << 4);
for (int i=0; i<16; i++)
{
if (i == 8)
pfn->printf(" ");
if (off % 16 != i)
{
pfn->printf(" ");
s[i] = ' ';
continue;
}
if (len)
{
BYTE b = *pbyte++;
pfn->printf("%02x ", b);
len--;
s[i] = GetVisibleChar(b);
}
else//len==0
{
pfn->printf(" ");
s[i] = ' ';
}
off++;
}
pfn->printf(" %s/r/n", s);
}
pfn->printf("/r/n");
}
我的代码
头文件:
#include "iostream.h"
#include "afx.h"
class CRead
{
public:
CRead(char *filename);
~CRead();
void PrintToScreen();
private:
char GetVisibleChar(BYTE byte);
BYTE *p_Buf;
int length;
int offset;
};
源文件
#include "CReadHex.h"
CRead::CRead(char *filename)//构造
{
CFile myfile;
myfile.Open(filename,CFile::modeRead);
length=myfile.GetLength();
p_Buf=new BYTE[length];
myfile.Read(p_Buf,length);
myfile.Close();
offset=0;
}
CRead::~CRead()//析构
{
delete []p_Buf;
p_Buf=NULL;
}
char CRead::GetVisibleChar(BYTE byte)
{
if (byte>=48 && byte<=122)
{
return (char)byte;
}
else
return '.';
}
void CRead::PrintToScreen()
{
char s[17];
s[16] = 0;
BYTE *p_temp=p_Buf;
while (length)
{
printf("%08X ", offset );
for (int i=0; i<16; i++)
{
if (i == 8)
printf(" ");
if (length)
{
BYTE b = *p_temp++;
printf("%02X ", b);
length--;
s[i] = GetVisibleChar(b);
}
else//length==0
{
printf(" ");
s[i] = ' ';
}
offset++;
}
printf(" %s/r/n", s);
}
}
void main()
{
CRead read_obj("read.exe");
read_obj.PrintToScreen();
}
- 读一个文件,将格式如十六进制编辑器(如WinHex) 样式显示出来
- 如何用十六进制显示内容
- Res目录下资源如图片文件和xml文件资源如何被加载显示出来
- 写一个函数,将一个排好序的数组显示如下图一样分四栏显示
- 如何用Vc读wav 格式的文件
- 如何用Vc读wav 格式的文件
- ubuntu下进行文件编码转换(如将文件转为UTF8格式)
- VB中如何把资源器的文件释放出来,并且允许。。如把1.bat载入资源编辑器
- 如何用DIV标签让内容居中显示出来
- C# 将bit流转化为十六进制显示出来
- ios中如何用一个格式获取多个文件目录中的全部文件
- 如何用vc6.0编出来一个心形
- 如何将一个十六进制数的数字分离出来
- 如何用代码将一个uiview设置到最前面显示 [superview bringSubviewToFront:subview]
- 如何用studio将一个Android工程转成一个jar文件
- 将两个文件合并为一个文件,并存如.txt文档中
- struts2循环标签(将一个列表的内容在界面显示出来,自定义日期格式)
- c++中 打开一个文件夹下的所有特定格式的文件(如JPG)
- 今日导读:2007年07月25日
- Windows 网络编程(6)
- Java实测FireBird的中文检索
- 房价上涨是人民币持续贬值带来通货膨胀的必然结果
- JAVA如何使用链表
- 读一个文件,将格式如十六进制编辑器(如WinHex) 样式显示出来
- 轻松掌握 Java 泛型---1
- 遍历文件目录 (将目录存到List里)
- 只要人民币没有大幅升值,“国八条”就无法阻止房价继续上涨
- 电脑问题——“windows无法找到c:/windows/rundll32.exe”
- 电信97系统(九七系统)简介
- 轻松掌握 Java 泛型---2
- C++读取磁盘扇区
- 开通CSDN的blog,不知道写些什么好!