задрот в различнейших областях
c++, первый курс.
Пожалуйста,
Мне нужно из бинарного файла удалить запись, используя только объявленную структуру.
Нам предлагали перезаписать: считать структуру, если строка фамилии совпадает с введенной, заменить структуру следующей.
Но даже так что-то не идет.
Можно ли перезаписать ненужную структуру так, чтобы на ее месте было пусто.
В море код целиком


@темы: C++

Комментарии
18.04.2011 в 02:02

Могу предложить следующий вариант:
вы используете здесь вектор, поэтому можно открыть файл, считывать оттуда по одной записи, при этом проверяя, равно ли поле фамилии ведённой. Если не равно, то добавить в вектор, иначе нет. После того,как дошли до конца файла,закрываем его, потом создаём заново или урезаем до нулевой длины и записывам туда содержимое вектора.
Также для сравнения введённой фамилии и имеющейся могу посоветовать использовать функцию strcmp() из cstring.
18.04.2011 в 07:00

задрот в различнейших областях
Ояги-кун не, вектор нельзя, пробовала уже
про сравнение - спасибо, посмотрю
18.04.2011 в 15:01

[TrusT] с вектором у вас не получилось или не разрешается использовать?
18.04.2011 в 15:35

задрот в различнейших областях
Ояги-кун не разрешается
сейчас выяснилось, что можно использовать временный файл, что легче, осталось только узнать как потом этот временный файл удалить )
19.04.2011 в 01:49

[TrusT] Если вы под ОС Windows пишете, то там функция DeleteFile(имя_файла). Возможно,потребуется подключить заголовочный файл windows.h.
19.04.2011 в 08:23

задрот в различнейших областях
Ояги-кун спасибо, попробую)
19.04.2011 в 21:34

задрот в различнейших областях
про DeleteFile
пишет
error C2664: 'DeleteFileW' : cannot convert parameter 1 from 'const char [12]' to 'LPCWSTR'