从Hexidimal文字读取到字符串
问题描述:
一直在涉及读取ROM标题(来自仿真场景)和报告数据的项目。我已经完成了大部分工作,但是无法从ROM中的十六进制文字地址中读取代码(EX:120h,然后读取“x”字节数量)(EX2:某些呼叫读取120h到140h )。我试图在YouTube上搜索并使用Google搜索,迄今为止还没有运气。此外,该语言是C#。从Hexidimal文字读取到字符串
这是我的代码到目前为止。
private void openROMToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog1.Title = "Select A ROM File";
OpenFileDialog1.InitialDirectory = "C:/Users";
OpenFileDialog1.ShowDialog();
textBox1.Text = System.IO.Path.GetFileName(OpenFileDialog1.FileName);
textBox8.Text = "Calculating...";
{
backgroundWorker1.RunWorkerAsync(OpenFileDialog1.FileName);
}
string getExt = Path.GetExtension(OpenFileDialog1.FileName);
getExt = getExt.ToLower();
if (getExt == ".smd" || getExt == ".gen" || getExt == ".md")
{
// SEGA GENESIS CODE (READ ROM DATA GOES HERE)
}
// REPEAT "if" STATEMENT FOR NEXT FILE FORMAT
任何帮助,将不胜感激。谢谢。
答
我得到了我正在寻找的解决方案。我用这个代码。
// SEGA GENESIS CODE
// ROM NAME 2
BinaryReader br = new
BinaryReader(File.OpenRead(OpenFileDialog1.FileName));
string romNameA = null;
for (int i = 0x120; i <= 0x144; i++)
{
br.BaseStream.Position = i;
romNameA += br.ReadByte().ToString("X2");
textBox4.Text = romNameA;
}
br.Close();
我现在有我需要的代码字符串。但现在提出了一个可能的新问题,我会在一篇新文章中提出。
+0
您应该将'BinaryReader'封装在'using'块中,以防止异常停止处理。 – BanksySan
ROM是由项目中的文件表示的吗? –
是的。它从OpenDialoge框中拉出。 –