Форум программистов, компьютерный форум CyberForum.ru

Чтение бинарного файла: определить длину кодограммы вместе с заголовком, тип, и смещение - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно исправить ошибки в коде и дописать функцию http://www.cyberforum.ru/cpp-beginners/thread1180653.html
В 17-ой строке компилятор выдает ошибку invalid operands of types 'int()' and 'int()' to binary 'operator+' В идеале программа должна считать произведение НЕ нулевых элементов главной и побочной диагоналей, я пока на этом завис. Буду благодарен, если допишите ту часть где нужно нулевые элементы диагоналей заменить на единицу и исправите ошибки. #include <math.h> #include <iostream>...
C++ Работа с одномерными массивами. Коротышки собирали огурцы Здравствуйте.Не могу понять, почему неправильно считает число максимумов и остаток.Помогите! Сама задача: Коротышки собирали огурцы.Число огурцов, собранных каждым коротышкой записано.В оплату каждому коротышке выдаётся 2 огурца, а тому, кто собрал больше всех, 3 огурца. Найти, кому 3 огурца.Найти, сколько собрали, Найти сколько осталось для засолки Заголовочный файл: #include "StdAfx.h"... http://www.cyberforum.ru/cpp-beginners/thread1180648.html
Организовать класс треугольник, определенный по длинам трех сторон. Сделать ввод значений объектов C++
Здравствуйте. Лабораторную сдавал, практические сдал, но преподаватель дал задание, выполнение которого меня поставило в некоторый тупик. В общем я так понял по ее заданию, нужно в класс по умолчанию сделать ввод значений объектов с клавиатуры. Как это выполнить? Подскажите, буду очень благодарен! Задание. В соответствии с вариантом составить описание класса. Класс дол-жен обязательно...
C++ Вывести старшую цифру дробной части и младшую цифру целой части числа
Искал у вас, не нашел. Я новичок в этом деле, если вам не трудно напишите полностью решение ща контрольная ( 31. Даны натуральные числа М и N. Вывести старшую цифру дробной части и младшую цифру целой части числа M/N.
C++ Минимизировать функцию с использованием генетического алгоритма http://www.cyberforum.ru/cpp-beginners/thread1180624.html
Требуется минимизировать функцию с помощью генетического алгоритма. Y = 100(x2-x12)+(1-x1)2+90(x4-x32)2+(1-x3)2+10,1{(x2-1)2+(x4-1)2}+19,8(x2-1)(x4-1) , при –10 <= xk <= 10. Глобальный минимум достигается в точке (x1, x2, x3, x4)=(1,1,1,1), min y=0. Как это сделать? Есть хотя бы аналоги?
C++ Работа с базой данных. Как заполнить таблицу? Добрый день. Как заполнить таблицу в бд(она уже создана.) Если не сложно приведите какой-нибудь исходник для наглядности. И литературу, если можно. подробнее

Показать сообщение отдельно
Ugin
0 / 0 / 0
Регистрация: 19.05.2014
Сообщений: 6
19.05.2014, 16:40     Чтение бинарного файла: определить длину кодограммы вместе с заголовком, тип, и смещение
Имееться бинарный файл с кодограммами и мусором.Каждая кодограмма начинаеться с АААА(16-ричный формат), 3-байт - мусор, 4 - тип. Нужно определить длину кодограммы вместе с заголовком(АААА), вывести тип, и смещение(позиция начала кодограммы относително начала файла).Для определения длины вроде функция ftell() но не понимаю куда ее втыкнуть, как смещение определить вообще не догоняю. Буду рад любой помощи.
Мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <vcl.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <stdio.h>
 
int main(int argc, char* argv[])
{
  
 
  int type;
   //int pos;
  char ch;
  std::vector<char> oneElement;
  FILE *fs;
  fs=fopen("D:\\Temp\\Learn\\sdfsdfsd\\Files\\20140302-080000.cu","rb");
 
  if (fs == NULL) printf ("Error\n");
   else printf ("Execute\n");
    while (true)
    {
    //long int pos;
    char tmp;
        fread(&tmp, 1,1,fs);
        if (feof(fs))
      break;
 
        if(tmp == (char)0xAA)
        {
      oneElement.push_back(tmp);
            if(oneElement.size() == 2)  //size() vozvrashaet col-vo el-tov v vectore
            {
        printf("Set position in 4 byte:");
 
        if ( fseek (fs,4,SEEK_CUR)==0)
          printf("Execute\n");
        else
          printf("Error\n");
 
        type=fgetc(fs);
        printf("Type of codogramm:%x",type);
        printf("Opredelenie dlini:");
       /* // Opredelenie dlini
        pos = ftell (fs);//dla binarnih vozvrashaet kol-vo byte ot nachla
 
        if (pos == -1) printf("Error\n");
        else printf("Dlina%x",pos);
 
        */
                oneElement.clear();
      }
    }
    else
      oneElement.clear();
  }
 
  if ( fclose (fs) == EOF) printf ("Error\n");
 
 
 
  system("pause");
 
    return 0;
}
Добавлено через 4 часа 34 минуты
Неужто такая сложная задача, что никто не подскажет?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru