Member 13475664 Ответов: 1

Как читать файлы dbc и asc в форме windows на языке C++


я хочу прочитать файл .asc и файл .dbc, может ли кто-нибудь подсказать мне, как читать их в форме windows с помощью c++.

Что я уже пробовал:

я попробовал поискать но не получил правильной информации

Member 13475664

могу ли я получить пример кода

1 Ответов

Рейтинг:
5

Jochen Arndt

Вы читаете их как двоичные файлы как и любой другой файл используя например функции Windows API CreateFile / ReadFile или стандартная библиотека C fopen / fread функции. Перед чтением вы должны определить размер файла и выделить буфер этого размера плюс один. Дополнительный байт предназначен для трейлинга NULL байт, который будет добавлен после чтения, потому что оба типа файлов являются обычными текстовыми файлами.

Aftwerwards вы можете получить доступ к данным как char* строки.

Обратите внимание, что открытие в двоичном режиме необходимо, потому что только тогда данные считываются как есть. В противном случае текстовые файлы, отличные от MS (только завершенные строки LF), будут преобразованы в завершенные строки CR-LF, что сделает выделенный буфер слишком маленьким.

[РЕДАКТИРОВАТЬ]

Цитата:
могу ли я получить пример кода для этого
#include <sys/stat.h>

struct stat st;
FILE *f = fopen("test.asc", "rb");
if (NULL != f)
{
    fstat(_fileno(f), &st);
    char *lpszFileData = new char[st.st_size + 1];
    fread(lpszFileData, 1, st.st_size, f);
    fclose(f);
    lpszFileData[st.st_size] = 0;
    // Use lpszFileData here

    // Delete when no longer needed
    delete[] lpszFileData;
}

[/РЕДАКТИРОВАТЬ]


CPallini

[От имени члена 13475664]
Могу ли я получить образец кода для этого?

Jochen Arndt

Сделано.

Спасибо за уведомление.