Есть .dat файл, который создала программа, она в нем хранит данные и когда запускается, то считывает эти данные из файла.
Задумка такая. Подменить данные в файле .dat и программа при запуске прочитает те данные которые мне нужны. В программу другими путями не получается нужные мне данные отправить.
Файл dat является бинарным. Открыл его редактором HEX
В файле в принципе разобрался. В файле записаны числа, каждое число занимает 8 байт, а так же записаны даты, так же занимает 8 байт.
Хочу на C# написать программу которая возьмет мои данные, преобразует их в HEX и запишет в файл.
Теперь собственно проблема и вопрос. Как преобразовать числа в HEX
Вот одно число из файла
00 00 00 00 80 87 D1 40 = программа понимает его как 17950
В HEX редакторе я изменял это число, и вот как программе читает файл
00 00 00 00 00 00 00 40 = это она читает как 2
00 00 00 00 00 00 00 39 = это она читает как 0 и ниже 0 значение в программе быть не может, так что 39 и ниже все равно программа воспринимает как 0
00 00 00 00 81 87 D1 40 = так программа читает 17950,015625
00 00 00 01 80 87 D1 40 = 17950.000061
00 00 01 00 80 87 D1 40 = видит как 17950 Возможно программа уже точность не отображает
using (var reader = new BinaryReader(File.Open("<file path>", FileMode.Open)))
{
var value1 = reader.ReadDouble();
var value2 = reader.ReadDouble();
...
}
А записывать - так:
using (var bw = new BinaryWriter(File.Create("<file path>")))
{
double value1 = 2;
double value2 = 17950.015625;
bw.Write(value1);
bw.Write(value2);
}
Вопрос по дате и времени отменяется. Разобрался.
Это 2 числа Int 32 бит
Первое число B1 A2 33 01 = это 20161201
Второе число 00 00 00 00 = это 0 то есть 00:00