BinaryEditor下载地址:【网通】点击这里来下载吧,带源程序哦。 【电信、网通】点击此处下载源程序

【下载说明】
1、单击上面这个地址,打开下载页面。
2、点普通下载--等待30秒--点“下载”按钮--保存

闲来无事,写了一个用ListView实现编辑二进制文件的程序,并且支持多标签浏览,也算是练习TabControl了.

输入时需要用到数字键盘的键,完成之后按Enter键. 注意,输入的数据的大小只能在0-255之间.
主要源程序:

/** Created by SharpDevelop.* User: PengJun* Date: 2012-5-9* Time: 12:47** To change this template use Tools | Options | Coding | Edit Standard Headers.*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;using System.IO;
using System.Diagnostics;namespace BinaryEditor
{/// <summary>/// Description of MainForm./// </summary>public partial class MainForm : Form{private ListViewItem.ListViewSubItem lvsi=null;private TextBox editTextBox=null;public MainForm(){//// The InitializeComponent() call is required for Windows Forms designer support.//InitializeComponent();//// TODO: Add constructor code after the InitializeComponent() call.//toolStripStatusLabel1.Text="";toolStripStatusLabel2.Text="";}void OpenToolStripMenuItemClick(object sender, EventArgs e){OpenFileDialog ofd=new OpenFileDialog();ofd.Multiselect=true;if(ofd.ShowDialog()==DialogResult.OK){for(int i=0;i<ofd.FileNames.Length;i++){LoadFile(ofd.FileNames[i]);}}}void LoadFile(string filePath){TabPage tp=new TabPage();ListView lv=new ListView();tp.Text=Path.GetFileName(filePath);lv.Anchor=AnchorStyles.Top|AnchorStyles.Bottom|AnchorStyles.Left|AnchorStyles.Right;lv.Location=new Point(0,0);lv.Size=new Size(tp.Width,tp.Height);lv.GridLines=true;lv.View=View.Details;lv.Name=Path.GetFileNameWithoutExtension(filePath);lv.MouseUp+=new MouseEventHandler(lv_MouseUp);lv.FullRowSelect=true;lv.MultiSelect=false;tp.Controls.Add(lv);tabControl1.TabPages.Add(tp);tabControl1.SelectedTab=tp;Stopwatch sw=new Stopwatch();sw.Start();using(BinaryReader br=new BinaryReader(File.Open(filePath,FileMode.Open))){long length=br.BaseStream.Length;int col=0;int row=0;int no=0;int rows=(int)Math.Ceiling(length/256.0);ListViewItem lvi;ListViewItem.ListViewSubItem lvsi=new ListViewItem.ListViewSubItem();for(int i=0;i<256;i++){lv.Columns.Add(i.ToString(),40,HorizontalAlignment.Center);}for(int i=0;i<rows;i++){lvi=new ListViewItem();lvi.Text=i.ToString();lv.Items.Add(lvi);}lv.BeginUpdate();while(no<length){no++;byte b=br.ReadByte();lvsi.Text=b.ToString();lv.Items[row].SubItems.Add(lvsi);lvsi=new ListViewItem.ListViewSubItem();col++;if(col==256){row++;col=0;}}lv.EndUpdate();}sw.Stop();toolStripStatusLabel1.Text=sw.ElapsedMilliseconds.ToString()+"ms";}void lv_MouseUp(object sender, MouseEventArgs e){TabPage currentTabPage=tabControl1.SelectedTab;string listViewName=currentTabPage.Text.Substring(0,currentTabPage.Text.Length-4);ListView currentListView=(ListView)currentTabPage.Controls.Find(listViewName,false)[0];//delete the old text boxif(this.editTextBox!=null){currentListView.Controls.Remove(this.editTextBox);this.editTextBox=null;}ListViewItem lvi=currentListView.GetItemAt(e.X,e.Y);ListViewItem.ListViewSubItem lvsi=lvi.GetSubItemAt(e.X,e.Y);int nColIndex=lvi.SubItems.IndexOf(lvsi);int nRowIndex=currentListView.SelectedIndices[0];toolStripStatusLabel2.Text="("+nRowIndex.ToString()+","+nColIndex.ToString()+")";TextBox editTextBox=new TextBox();editTextBox.Text=lvsi.Text;editTextBox.Location=new Point(lvsi.Bounds.Left,lvsi.Bounds.Top);editTextBox.Size=new Size(lvsi.Bounds.Width,lvsi.Bounds.Height);editTextBox.Visible=true;editTextBox.KeyUp+=new KeyEventHandler(editTextBox_KeyUp);currentListView.Controls.Add(editTextBox);this.lvsi=lvsi;this.editTextBox=editTextBox;editTextBox.Focus();editTextBox.Select(0,editTextBox.Text.Length);}void editTextBox_KeyUp(object sender, KeyEventArgs e){if(e.KeyCode==Keys.Enter){   TabPage currentTabPage=tabControl1.SelectedTab;string listViewName=currentTabPage.Text.Substring(0,currentTabPage.Text.Length-4);ListView currentListView=(ListView)currentTabPage.Controls.Find(listViewName,false)[0];try{byte b=byte.Parse(this.editTextBox.Text);this.lvsi.Text=b.ToString();currentListView.Controls.Remove(this.editTextBox);this.editTextBox=null;}catch(Exception ex){currentListView.Controls.Remove(this.editTextBox);this.editTextBox=null;MessageBox.Show(ex.Message,"Exception");}return;}if(!(e.KeyCode>= Keys.NumPad0 && e.KeyCode<=Keys.NumPad9)){MessageBox.Show("Must use the numeric pad 0~9.","Info");}}void CloseCurrentTabToolStripMenuItemClick(object sender, EventArgs e){int selectIndex=tabControl1.SelectedIndex;tabControl1.TabPages.Remove(tabControl1.SelectedTab);tabControl1.SelectedIndex=selectIndex-1;GC.Collect();}void ExitToolStripMenuItemClick(object sender, EventArgs e){Close();}void SaveToolStripMenuItemClick(object sender, EventArgs e){SaveFileDialog sfd=new SaveFileDialog();if(sfd.ShowDialog()==DialogResult.OK){using(BinaryWriter bw=new BinaryWriter(File.OpenWrite(sfd.FileName))){TabPage currentTabPage=tabControl1.SelectedTab;string listViewName=currentTabPage.Text.Substring(0,currentTabPage.Text.Length-4);ListView currentListView=(ListView)currentTabPage.Controls.Find(listViewName,false)[0];for(int i=0;i<currentListView.Items.Count;i++){for(int j=1;j<currentListView.Items[i].SubItems.Count;j++){string text=currentListView.Items[i].SubItems[j].Text;byte b=Convert.ToByte(text);bw.Write(b);}}}MessageBox.Show("Save Completely!","Info.");}}}
}

【更多阅读】

  1. [原]WMICodeCreator:C#产生WMI代码的工具
  2. [原]ManageStartUpApps:C#操作注册表来读取和修改开机启动项
  3. [原]Cls_Ini.cls:VB写的操作ini配置文件的类
  4. [原]Hotkey.cs:为应用程序添加热键
  5. [原]QQHelper:QQ大家来找茬 辅助工具 外挂
  6. [原]GetIcons:C#提取应用程序的图标资源
  7. [原]DownloadWebImages:下载某页面上的所有图片
  8. [原]QQHelper:QQ大家来找茬 辅助工具 外挂
  9. [译]用C#检测你的打印机是否连接
  10. [原]BinaryEditor:用ListView实现编辑二进制文件

BinaryEditor:用ListView实现编辑二进制文件相关推荐

  1. 工具及方法 - 编辑二进制文件(使用VSCode和Notepad++的插件Hex Editor)

    Visual Studio Code 在VSCode里安装插件,可以实现很多功能. 打开VSCode,在菜单里选择, View->Extensions,就会出现扩展插件的查找页面. 输入想要查找 ...

  2. java 编辑二进制文件_java写二进制文件,不能直接编辑,该怎么操作?

    java写二进制文件,不能直接编辑,该怎么操作? 关注:138  答案:3  mip版 解决时间 2021-01-14 21:48 提问者醒不来的梦 2021-01-14 07:45 我现在想做写一个 ...

  3. 如何用VI编辑器编辑二进制文件

    1.用带-b参数的vim打开它,-b告诉vim打开的是二进制文件 $ vim -b binaryfile 2. 在vim下输入 :%!xxd,会得到如下显示, xxd程序是vim软件包自带的一个程序, ...

  4. Linux VIM编辑二进制文件

    在vim下面编辑二进制的方式如下: vim -b binary_file -b 这个参数设定了 'binary' 选项. 然后输入: :%!xxd 这个命令把文件内容以常见的字节偏移 十六进制 ASC ...

  5. winform listview 动态编辑_霓虹灯:免费动画文字字体– 36个免费动态图形元素

    想要为您的视频带来干净现代的感觉?还是复古,浮华的风格?下载这些功能强大的免费动画文本预设,可立即获得您想要的美感. 如果您看过我们的2019年创意趋势报告,就会知道霓虹灯和复古未来主义风格的美学在所 ...

  6. 使用 vim 和 xxd 编辑二进制文件

    xxd xxd [options] [files] xxd 可以转储 [dump] 出文件的数据,反之亦可.例如: xxd -l 0x30 /bin/ls 00000000: 7f45 4c46 02 ...

  7. vim编辑二进制文件

    命令模式下输入: :%!xxd vi打开文件的模式就转变成二进制的模式了 输入 :%!xxd -r 可以退出二进制模式 然后保存退出即可 注意:如果没有退出二进制模式就wq的话,该文件将变成二进制形式 ...

  8. 二进制修改linux文件,Linux下查看编辑二进制文件:hexedit神器

    java String.split()函数的用法分析 java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,19 ...

  9. linux下的二进制文件的编辑和查看 -

    linux下的二进制文件的编辑和查看 一.在Linux下查看二进制文件的软件: xxd (默认2进制) hexdump  (默认16进制,可转其他进制) od (默认8进制,可转其他进制) 二.编辑: ...

最新文章

  1. ALE IDoc RFC of SAP
  2. 品牌到底要不要做全渠道?且听他们怎么说……
  3. hdu4609 3-idiots
  4. python同步两张数据表_Python 如何实现数据库表结构同步
  5. linux nohup 后台运行
  6. oracle左连接查询代码,ORACLE连接查询,内外连接
  7. 什么是Ultrabook
  8. Redis的持久化——AOF
  9. mongodb java 不等于_mongoDB在java上面的应用
  10. ibm x5服务器系统重装,IBM 3850 X5 Server安装Windows 2003步骤说明
  11. 百度网盘客户端(java)版本
  12. 受益于人工智能的发展,人们可以以前所未有的时空分辨率系统地观察神经活动
  13. 计算机自动关机启机唤醒设置,电脑定时自动关机怎么设置
  14. 高仿绚丽彩虹悬浮音乐播放器html5源码
  15. 【数据结构】详解KMP算法
  16. 报错package xxx is not in GOROOT or GOPATH 或者 cannot find package “xxx“ in any of
  17. windows中 mysql修改密码
  18. 如何写好JAVA代码
  19. 搜搜问问做外链是一个误区
  20. 3d空间中球体的动量守恒

热门文章

  1. 青楼梦-(在这里定一个小目标哈)
  2. 基于异构信息网络的元学习冷启动推荐
  3. 饥荒服务器显示必要模组,wegame饥荒必要模组加载失败 | 手游网游页游攻略大全...
  4. mapabc高德地图显示多个点,并且每个marker点可以响应鼠标点击事件,处理跳转页面
  5. python 图片转换成py文件
  6. Word 中Mathtype按钮灰色不可用的解决办法
  7. 基于BES蓝牙芯片PCBA测试程序接口实验
  8. 学生怎么在网上赚钱,想赚钱就要学会这些!
  9. 【过关斩将4】互联网老辛带你理清 “你还有什么想问我的吗?”
  10. 新港转债,百洋转债上市价格预测