Форум программистов, компьютерный форум 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
02.06.2014, 09:10  [ТС]     Чтение бинарного файла: определить длину кодограммы вместе с заголовком, тип, и смещение
Так никто и не подсказал. Жаль. Логическое завершение, может кому понадобиться
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <vcl.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <stdio.h>
 
struct SCodogramInfo
{
  unsigned char Type;
  int           Len;
  DWORD         Offset;
  int temp;
};
 
void codogrAnalis();
 
int main(int argc, char* argv[])
{
 
  SCodogramInfo info;
  bool info_valid = false;
 
  unsigned int pos;
  int count;
 
//  std::vector<char> lastCodogram; //variant porostogo vivoda poslednei codogrammi bez dobavlenia v massiv structur s odnim vector(esli tipi sovpadaut)
//  std::vector<unsigned char> tip; //variant porostogo vivoda poslednei codogrammi bez dobavlenia v massiv structur
//  std::vector<DWORD> ofs;
  std::vector<char> oneElement;
  std::vector<SCodogramInfo> codograms;
 
 
  FILE *fs;
  fs=fopen("D:\\Velichko\\project_1_1\\test.cu","rb");
 
  if (fs == NULL)
  {
    printf ("ERROR: file does not exist or broken!!!\n");
    system("pause");
    return 0;
  }
  printf("Offs(smechenie)----->Tekusha ot nachala file pozicia codogrammi c uchetom zagolovka v bytes.\n\n");
  void codogrAnalis();
 
  void codogrAnalis();
  {
  while (true)
  {
 
      char tmp;
      DWORD lastOffset;
 
      fread(&tmp, 1,1,fs);
 
       if(feof(fs))
        {
          lastOffset=ftell(fs);
          info.Len = lastOffset - info.Offset;
          codograms.push_back(info);
          break;
        }
//      if (feof(fs))
//      break;
      else
      if(tmp == (char)0xAA)
      {
        oneElement.push_back(tmp);
 
        if(oneElement.size() == 2)  //size() vozvrashaet col-vo el-tov v vectore
        {
            count++;
 
            pos = ftell (fs);
 
            if (info_valid)
            {
              info.Len = (pos-2) - info.Offset;
              codograms.push_back(info);
            }
 
            info.Offset = (pos-2);
//            ofs.push_back(info.Offset);
//            lastCodogram.push_back(info.Offset);
 
 
            if ( fseek (fs,1,SEEK_CUR)!=0)// cnachala 1byte ff potom 2,1 propuskaem -> ustanovka na 4 byte
            {
              printf("Error\n");
            }
 
            fread(&info.Type, 1, 1, fs);
//            tip.push_back(info.Type);
//            lastCodogram.push_back(info.Type);
 
 
 
//            printf("Type of codogramm:%02x\n",info.Type);   //dla otladki
 
//            printf("Smechenie :%08d\n",(pos-2));
 
 
 
 
            info_valid = true;
 
            oneElement.clear();
 
        }
      }
      else
        oneElement.clear();
  }
 
  fclose (fs);
  }
  printf("=====================\n\n");
  printf("Number of codograms: %d\n\n",count);
  printf("=====================\n");
  for(unsigned int i=0; i<codograms.size(); i++)
  {
    printf("Offs, bytes: %08d\n", codograms[i].Offset);
    printf("Type: %02x\n", codograms[i].Type);
    printf("Length, bytes: %02d\n", codograms[i].Len);
    printf("=====================\n");
 
  }
/*  printf("Offs, bytes: %08d\n",ofs.back());
    printf("Type: %02x\n",tip.back());
//    printf("Offs, bytes: %08d\n",lastCodogram[lastCodogram.size()-2]);
//    printf("Type: %02x\n",lastCodogram.back());    */
 
 
  system("pause");
 
  return 0;
  }
 
Текущее время: 08:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru