![]() |
|
Модераторы: bsa |
![]()
|
|
| tonhead |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.4.2010 Репутация: нет Всего: нет |
Всем здравствуйте.
Передо мной стоит задача: считывать данные из текстового файла блоками (тип данных float), обрабатывать блок, записывать блок обратно в тот же файл (на место откуда он был считан), переходить к следующему блоку. К примеру, если в файле 100 чисел, размер блока 50, то я читаю первые 50 чисел, обсчитываю их, и записываю обратно в тот же файл в позиции 0-49; затем читаю числа начиная с 50го, обсчитываю их, записываю в тот же файл в позиции 50-99. Как это можно осуществить? Пока для чтения я использую код:
Существует ли возможность осуществлять движение по файлу (от одного числа float к другому)? Какие вообще рекоммендации можете дать? |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
Чтение и запись - r+, a+ (параметры fopen).
Движение по файлу (побайтово!) - fseek. Читать, писать - fread, fwrite. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| tonhead |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.4.2010 Репутация: нет Всего: нет |
А существует возможность вставить данные внутри файла, без замены текста?
Например, выполнение
привело бы к "This is an samapple." а не "This is a sample." (как в примере с сайта сплюсплюс.ком). Потому что в моем случае скорее всего неизвестно будет, сколько байт будет занимать блок, и проще было бы запомнить положение указателя в начале блока, положение указателя в конце блока, потом как то удалить его (блок) - тоже вопрос как это сделать - , и уже затем вставить новый кусок в положение указателя в начале блока. |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
tonhead, вручную придется делать. Вот тут мы немного флеймили на около-эту тему.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| tonhead |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.4.2010 Репутация: нет Всего: нет |
Задачка упростилась, теперь читаем бинарный файл, тип double = 8 байт. Т.о. ничего удалять не надо, новые данные встанут на место старых хорошо. Научиться только с указателями работать.
Спасибо за ответы. И спасибо рекламе от Гугл Это сообщение отредактировал(а) tonhead - 12.5.2010, 16:20 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |