Я хочу сделать простую консольную программу.
программа не проверяет программу
Иногда точка смерти на бревне отличается от того, где это фактически произошло.
Формат файла DLT выглядит следующим образом.
Я хочу проанализировать следующие двоичные файлы через C ++.
Я много раз пытался прочитать двоичный файл, но это не удалось.
Я был бы признателен, если бы вы могли загрузить простой пример источника. \
Спасибо
#include <stdio.h>
#include <fstream>
#include <iterator>
#include <algorithm>
#include <io.h>
#include <vector>
#include <string>
#include <conio.h>
using namespace std;
struct dltLogFormat
{
char dltPattern[100];
unsigned int TimeStamp_sec;
int TimeStamp_mic;
char ECU_ID[4];
};
void main()
{
FILE *fp;
vector<string> dltList;
char dltPattern[5] = "";
unsigned int TimeStamp_sec = 0;
int TimeStamp_mic = 0;
char ECU_ID_CHARACTER[5] = "";
char infoHeader;
unsigned short messageLength;
int ECU_ID = 0;
unsigned int sessionID = 0;
int extHeaderInfo = 0;
unsigned int numberOfArguments = 0;
unsigned int applicationID = 0;
unsigned int ContextID = 0;
char payload[17];
_finddata_t fd;
long handle;
int result = 1;
handle = _findfirst(".\\*.dlt", &fd);
if (handle == -1)
{
printf("There were no dlt files.\n");
return;
}
while (result != -1)
{
dltLogFormat dltFormant;
dltList.push_back(fd.name);
printf("File: %s\n", fd.name);
result = _findnext(handle, &fd);
std::ifstream input(fd.name, std::ios::binary | std::ios::in);
while (true)
{
input >> dltPattern;
input.read((char*)&TimeStamp_sec, sizeof(unsigned int));
input.read((char*)&TimeStamp_mic, sizeof(int));
input >> ECU_ID_CHARACTER;
input.read((char*)&infoHeader, sizeof(char));
input.read((char*)&messageLength, sizeof(unsigned short));
input.read((char*)&ECU_ID, sizeof(int));
input.read((char*)&sessionID, sizeof(unsigned int));
input.read((char*)&extHeaderInfo, sizeof(unsigned int));
input.read((char*)&numberOfArguments, sizeof(unsigned int));
input.read((char*)&applicationID, sizeof(unsigned int));
input.read((char*)&ContextID, sizeof(unsigned int));
input.read(payload, sizeof(char)*messageLength);
//header
//input
//extend header
//payload
}
}
}