Hi,
I need to read in values from a binary file.
The header is made up of.
4 bytes, 1 byte, 1 byte, 2 bytes, 4 bytes, 4 bytes, 4 bytes
I have a int32, byte, byte, inst16, int32, int32, int32.
Which should read as 484 5 30 1595434298 15 58.
(However, it doesn't at the moment)
I had started off with Python, but need to switch to C# for other reasons.
the python code looked like
with open(filename, "rb") as file:
buffer = file.read(20)
size, variation, objectType, pointIndex, startTime, sampleRate, count = struct.unpack('>IBBHiII', buffer)
print(size, variation, objectType, startTime, sampleRate, count)
The start on C# is below.
I need to read in values from a binary file.
The header is made up of.
4 bytes, 1 byte, 1 byte, 2 bytes, 4 bytes, 4 bytes, 4 bytes
I have a int32, byte, byte, inst16, int32, int32, int32.
Which should read as 484 5 30 1595434298 15 58.
(However, it doesn't at the moment)
I had started off with Python, but need to switch to C# for other reasons.
the python code looked like
with open(filename, "rb") as file:
buffer = file.read(20)
size, variation, objectType, pointIndex, startTime, sampleRate, count = struct.unpack('>IBBHiII', buffer)
print(size, variation, objectType, startTime, sampleRate, count)
The start on C# is below.
C#:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace InsertHistoryCOMAPI
{
class Program
{
static void Main(string[] args)
{
// Specifing a file
string path = @"C:\DNP3File\XXXXXXXXXX";
// Calling the ReadAllBytes() function
byte[] readText = File.ReadAllBytes(path);
byte[] temp;
int[] values = new int[3];
temp = new byte[4];
Array.Copy(readText, 0, temp, 0, 4);
values[0] = BitConverter.ToInt32(temp, 0);
Console.WriteLine(values[0]);
temp = new byte[4];
Array.Copy(readText, 4, temp, 0, 1);
values[0] = BitConverter.ToInt32(temp, 0);
Console.WriteLine(temp);
temp = new byte[4];
Array.Copy(readText, 5, temp, 0, 1);
values[0] = BitConverter.ToInt32(temp, 0);
Console.WriteLine(temp);
temp = new byte[4];
Array.Copy(readText, 6, temp, 0, 2);
values[0] = BitConverter.ToInt16(temp, 0);
Console.WriteLine(values[0]);
temp = new byte[4];
Array.Copy(readText, 8, temp, 0, 4);
values[0] = BitConverter.ToInt32(temp, 0);
Console.WriteLine(values[0]);
temp = new byte[4];
Array.Copy(readText, 12, temp, 0, 4);
values[0] = BitConverter.ToInt32(temp, 0);
Console.WriteLine(values[0]);
temp = new byte[4];
Array.Copy(readText, 16, temp, 0, 4);
values[0] = BitConverter.ToInt32(temp, 0);
Console.WriteLine(values[0]);
Console.ReadLine();
}