![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
vladko |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 31.3.2009 Репутация: нет Всего: нет |
Бинарный файл состоит из заголовка:
и массива структур:
читаю заголовок и 1 структуру из массива.
Как прочитать оставшиеся до конца файла структуры и изменить последнюю? |
||||||
|
|||||||
t_gran |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
А вот с этим проблемка. Придёться переписывать файл, т.к. в Си нет такой возможности заменять данные в файле. По крайней мере ни разу не встречал. Добавить можно, но не изменить.
Это сообщение отредактировал(а) t_gran - 8.12.2009, 04:43 -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
||||||||
|
|||||||||
vladko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 31.3.2009 Репутация: нет Всего: нет |
Спасибо.
Может быть на каком-нибудь другом языке программирования возможно изменять файл? |
|||
|
||||
Dancer |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 4 Всего: 37 |
вроде бы можно переместиься в определённое место, и оттуда уже производить запись. разьве нет? peek(), fseek() что-то вроде, c конца, вернулись на sizeof(q) и переписали эту структуру. fseek(stream, -sizeof(q), SEEK_END); fwrite(&new_q, sizeof(q), 1, stream); fclose(stream); Это сообщение отредактировал(а) Dancer - 8.12.2009, 11:51 -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! ![]() |
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 16 Всего: 128 |
|
|||
|
||||
t_gran |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Dancer, перед тем как отвечать я обязательно проверил ваше предположение и к сожалению оно ошибочно. Но если вы предоставите код, который будет выполнять это, я буду рад т.к. это и меня просвятит и в дальнейшем на пользу другим будет. А посему жду код.
А то, что я пробовал, вот:
И к моему сожалению получаю
Это сообщение отредактировал(а) t_gran - 9.12.2009, 05:08 -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
||||
|
|||||
Dancer |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 4 Всего: 37 |
Это сообщение отредактировал(а) Dancer - 9.12.2009, 14:02 -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! ![]() |
|||
|
||||
t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Dancer, +1. Моей ошибкой был параметр a+b.
-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |