![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.02.2012
Сообщений: 37
|
![]()
Здравствуйте, не знаю как удалить элемент по заданному номеру. Мы создаем бинарный файл, в консоль заполняем структуру и она записывается в этот новый файл. Теперь нужно сделать так, чтобы по номеру который введет пользователь, была удалена соответсв. запись из файла. У меня не получислось разобраться... Вот сама программа: http://zalil.ru/34576378 не хватает "удаления".
Пожалуйста помогите. ___ И еще такой нюанс: вот например, удалили запись. Как это показать преподавателю? Ведь в бинарном файле одни иероглифы, как проверить удалилось ли именно то, что должно было? ![]() |
![]() |
![]() |
![]() |
#2 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]()
Например есть вариант такой.
1. Вводим номер записи, которую хотим удалить. 2. Организуем цикл перемещения по файлу с записями (на введенное число записей). 3. Передвижение по файлу (если например запись 3 для удаления) Передвигаемся на третюю позицию (отсчитываем 2 записи размера -struct .. имя сруктуры, можно функцие sizeof(struct ...)) 4. Затем удаляем эту запись.... Это конечно все в общих чертах, но смысл такой.. ![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Нужно переписывать файл во временный файл без удаляемой записи.
Читать из файла умеешь? Писать в него умеешь? Цитата:
tellg() fseek() fread() fwrite() - этих функций хватит вполне ![]() Буквально 5 строк получится.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 | |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]() Цитата:
![]()
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 23.11.2012
Сообщений: 428
|
![]()
я недавно делал курсовую по бд, тоже самое было, я делал так: допустим 3 запись удалить, 4 сдвигаем на место 3, 5 на 4 и т.д. до конца, дальше просто через realloc изменяем выделение памяти под массив на 1 запись меньше (удаляется последняя)
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка данных типа записи и работа с файлами | 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 |