Цитата:
Сообщение от Gligarr
Вообще, как можно организовать удаление определенной структуры?
|
Ууу, брат. Удаление из/добавление в середину в файлах делается только с копированием остального хвоста файла. То есть в случае удаления тебе надо делать так:
1) Прочитать структуру t1
2) Проверить условия, спросить
3) Если удовлетворяет условию, цикл:
* Прочитать
следующую структуру t2
* Переместиться на
2*SizeOf(luggage) назад (потому что к этому моменту указатель в файле будет у начала
второй структуры после удаляемой t1 - назовем ее t3)
* Записать в текущее место t2
* Переместиться на SizeOf(luggage) вперед
* Повторить цикл
5) В конце обрезать файл на SizeOf(luggage) байт
То есть, проще говоря, по кусочкам "подтащить" структуры, заполнив свободную ячейку в файле
Что же касается твоего кода "Удаление структур с t1.weight<10", то ты там вообще что-то непонятное творишь. В случае утвердительного ответа
перезаписываешь структуру, которую надо удалять, причем на ту же позицию, где она и есть в файле, а потом еще и зачем-то закрываешь файл