Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Одновременное чтение с 8 файлов


Автор: Silyet 12.7.2015, 20:36
Здравствуйте. Помогите пожалуйста.
В файле сохранены данные, состоящие из пакетов по 7 байт, пакетов N-ое количество. Таких файлов 8.
7 байт имеют структуру: 1 байт(младший) и 2 байт(старший) - 16 битное число, с 3 байта (младший) по 6 байт (старший) 32 битное число и 7 байт (какая-то информация)
Нужно открыть 8 файлов прочитать у каждого, допустим, 1 пакет найти минимальное и максимальное число для 16 битного и 32 битного числа (из этих 8 фалов) и записать их в новый файл добавив к ним в конце 7 байт (информация)
В итоге получим новый файл в котором: 
с 1 байта по 4 байт два 16 битных числа (min, max), с 5 байта по 12 байт два 32 битных числа (min, max) и 13 байт (7 байт информации) и процедуру повторить для каждого пакета.
Может кто-то уже решал подобную задачу и поделится опытом.
Большое спасибо всем за предоставленную помощь.

Автор: feodorv 12.7.2015, 21:11
"Псевдокод":
Код
for(i:0..7) files[i] = open_file( names[i], "rb");
output = open_file( "output, "wb"); 

for(n:0..N-1)
{
  for(i:0..7) read_packet( files[i], &packets[i]);

  entry.minShort = get_min_short( packets );
  entry.maxShort = get_max_short( packets );
  entry.minLong = get_min_long( packets );
  entry.maxLong = get_max_long( packets );
  for( i:0..6) entry.info[i] = ???;

  write_entry( output, &entry);
}

close_file( output );
for(i:0..7) close_file( files[i] );    

Автор: Silyet 13.7.2015, 18:00
feodorv, Спасибо за помощь! Буду разбираться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)