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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2013, 01:49   #1
Erlotaza
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 37
По умолчанию С++ работа с файлами, удаление записи, структура

Здравствуйте, не знаю как удалить элемент по заданному номеру. Мы создаем бинарный файл, в консоль заполняем структуру и она записывается в этот новый файл. Теперь нужно сделать так, чтобы по номеру который введет пользователь, была удалена соответсв. запись из файла. У меня не получислось разобраться... Вот сама программа: http://zalil.ru/34576378 не хватает "удаления".
Пожалуйста помогите.
___
И еще такой нюанс: вот например, удалили запись. Как это показать преподавателю? Ведь в бинарном файле одни иероглифы, как проверить удалилось ли именно то, что должно было?
Erlotaza вне форума Ответить с цитированием
Старый 13.06.2013, 08:08   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Например есть вариант такой.
1. Вводим номер записи, которую хотим удалить.
2. Организуем цикл перемещения по файлу с записями (на введенное число записей).
3. Передвижение по файлу (если например запись 3 для удаления)
Передвигаемся на третюю позицию (отсчитываем 2 записи размера -struct .. имя сруктуры, можно функцие sizeof(struct ...))
4. Затем удаляем эту запись....

Это конечно все в общих чертах, но смысл такой..
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 13.06.2013, 08:08   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нужно переписывать файл во временный файл без удаляемой записи.
Читать из файла умеешь? Писать в него умеешь?
Цитата:
Организуем цикл перемещения по файлу с записями
Файл бинарка, можно проще - считать все записи до этой, записать их в файл, перескочить запись и считать все до конца - записать.
tellg() fseek() fread() fwrite() - этих функций хватит вполне
Буквально 5 строк получится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2013, 08:29   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нужно переписывать файл во временный файл без удаляемой записи.
Читать из файла умеешь? Писать в него умеешь?

Файл бинарка, можно проще - считать все записи до этой, записать их в файл, перескочить запись и считать все до конца - записать.
tellg() fseek() fread() fwrite() - этих функций хватит вполне
Буквально 5 строк получится.
Поддерживаю...
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 13.06.2013, 09:10   #5
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

я недавно делал курсовую по бд, тоже самое было, я делал так: допустим 3 запись удалить, 4 сдвигаем на место 3, 5 на 4 и т.д. до конца, дальше просто через realloc изменяем выделение памяти под массив на 1 запись меньше (удаляется последняя)
NewLamer&Programer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка данных типа записи и работа с файлами lolwto Помощь студентам 0 02.12.2012 17:32
Работа с файлами. Удаление открытых файлов Diakon Общие вопросы Delphi 4 14.08.2009 17:58
записи и работа с файлами по Паскалю мяфффф Помощь студентам 2 22.06.2009 20:59
Работа с файлами. Записи Pasha9 Помощь студентам 1 22.03.2009 16:47
работа с файлами записи..... КиношкА Помощь студентам 6 14.01.2008 16:13