Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2015, 20:28   #1
Silyet
Новичок
Джуниор
 
Регистрация: 12.07.2015
Сообщений: 3
По умолчанию Одновременное чтение с 8 файлов

Здравствуйте. Помогите пожалуйста.
В файле сохранены данные, состоящие из пакетов по 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 байт информации) и процедуру повторить для каждого пакета.
Может кто-то уже решал подобную задачу и поделится опытом.
Большое спасибо всем за предоставленную помощь.
Silyet вне форума Ответить с цитированием
Старый 13.07.2015, 01:52   #2
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Чтение/запись структуры в файл: http://www.programmersforum.ru/showp...55&postcount=2

А в чем у Вас проблема?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 13.07.2015, 17:57   #3
Silyet
Новичок
Джуниор
 
Регистрация: 12.07.2015
Сообщений: 3
По умолчанию

Krasiosoft, со многим я вроде бы уже разобрался, у меня остались только вопросы по поводу открытия 8 файлов, так как их может быть от 2 до 8 и они задаются пользователем, а не являются константой, хотя вроде бы идея уже есть, постараюсь завтра реализовать. Спасибо за ссылку.
Silyet вне форума Ответить с цитированием
Старый 13.07.2015, 19:18   #4
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Ничто не мешает открыть одновременно 8 файлов, просто используйте динамический массив указателей на FILE*. Примерно так:
Код:
    char **filesNames;
    int filesCount;
    ...
    FILE **fp_array = new FILE*[filesCount];
    ...
    for(int i=0;i<filesCount;i++){
        if(!(fp_array[i]=fopen(filesNames[i],"rb"))){
            printf("Error opening file.");
            return 0;
        }
    }
    ...
    for(int i=0;i<filesCount;i++) fclose(fp_array[i]);
    delete []fp_array;
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 13.07.2015, 19:38   #5
Silyet
Новичок
Джуниор
 
Регистрация: 12.07.2015
Сообщений: 3
По умолчанию

Krasiosoft, ага так и собирался попробовать. За решение спасибо!
Silyet вне форума Ответить с цитированием
Старый 13.07.2015, 20:15   #6
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Но если речь идет именно о C++ Builder'e, то скорее всего, будет корректнее использовать его компонент TFileStream или функции FileOpen и FileRead.

Я привел пример чтения файла средствами языка С.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

Последний раз редактировалось Krasiosoft; 13.07.2015 в 20:26.
Krasiosoft вне форума Ответить с цитированием
Старый 13.07.2015, 23:09   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Silyet Посмотреть сообщение
у меня остались только вопросы по поводу открытия 8 файлов, так как их может быть от 2 до 8 и они задаются пользователем, а не являются константой
Я бы организовал открывающиеся-закрывающиеся потоки. Код пишу, исключительно в холодное время года, так, что не обессудьте, с этим помочь не могу.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение wav файлов asdbsa Общие вопросы C/C++ 2 21.10.2013 12:15
Чтение любых файлов. qwertyk Общие вопросы Delphi 8 09.01.2011 00:14
Чтение текстовых файлов. the_deer_one Общие вопросы C/C++ 3 05.04.2010 14:06
Чтение обновленных файлов Gambler Работа с сетью в Delphi 4 03.12.2009 08:31
чтение файлов Neymexa Общие вопросы .NET 2 07.04.2009 11:03