intelHexファイルからバイナリファイルを作成しようとしています。intelHexファイルのほかに、バイナリファイル内にデータを書き込む必要のあるデータとアドレスがあります。IntelHexファイルはそのように見えます
:10010000214601360121470136007EFE09D2190140
:100110002146017EB7C20001FF5F16002148011988
:10012000194E79234623965778239EDA3F01B2CAA7
:100130003F0156702B5E712B722B732146013421C7
:00000001FF
最後の1行でファイルの終わりが示されているので、ここに4行のデータがあります。これが私がファイルを作成するために行っていることです
while (!streamReader.EndOfStream)
{
string temp = String.Empty;
int address = 0;
line = streamReader.ReadLine();
// Get address for each data
address = Convert.ToInt32(line.Substring(3, 4), 16);
// Get data from each line
temp = line.Substring(7, 2);
if (temp == "01")
break;
else
{
temp = line.Substring(9, line.Length - 11);
string[] array = new string[(temp.Length / 2)];
int j = 0;
for (int i = 0; i < array.Length; ++i)
{
array[i] = temp[j].ToString() + temp[j + 1].ToString();
j = j + 2;
}
temp = String.Empty;
for (int i = 0; i < array.Length; ++i)
{
temp = temp + Convert.ToChar(Convert.ToInt32(array[i], 16));
}
}
binaryWriter.Seek(address, SeekOrigin.Begin);
binaryWriter.Write(temp);
binaryWriter.Flush();
}
Console.WriteLine("Done...\nPress any key to exit...");
ここでの問題は、一部の場所でバイナリファイルのデータがintelHexファイルのデータと等しくないことです。ファイルにランダムなデータが追加されているようですが、どこからかわかりません。intelHexファイルのデータの前に追加のデータがあることを初めて見ました。たとえば、最初のデータ行は21で始まりますが、バイナリファイルでは21の前に12という数字があります。ここで何が問題なのかわかりません。誰かが私を助けてくれるか、C#でのバイナリファイルの作成に関するいくつかの有用な情報を見つけることができる場所を案内してくれることを願っています