|
Вопрос # 1 621/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!ПОмогите плз!! мне нада было сделать прогу для поддержки базы данных с кнопками добавить. паказать информацию и удалиь .... я всё сделал кроме кнопки удалить из базы.... помогите плизззз!!! файл тут
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: Тоха (статус: Посетитель)
Вопрос отправлен: 25 мая 2008, 12:00
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Тоха!
А ошибок по коду, а ошибок.....
на 3, больше работа не тянет. Если файл открываем, то надо его и закрывать. (для этого используем CloseFile). Или например такой кусок
if opendialog1.Execute then
AssignFile(f, opendialog1.FileName);
Reset(f);
if ioResult <> 0 then
begin
ShowMessage('Ошибка открытия файла БД');
Exit;
end;
Если человек не выбрал файл, то какой смысл далее его пытаться открыть. А во вторых, что бы пользоваться IOResult, надо выставлять некоторые директивы. Испрвленный код должен выглядеть где то так
if not opendialog1.Execute then exit;
{$I-}
AssignFile(f, opendialog1.FileName);
Reset(f);
if ioResult <> 0 then
begin
ShowMessage('Ошибка открытия файла БД');
Exit;
{$I+}
end;
При каждом запросе добавить/показать открывать файл и просить выбрать - это уже наглость. Представтье, что надо добавить сотню записей.
А теперь подходим к главному вопросу: "Как сделать удаление?". К сожалению, я даже не представляю по вашему коду, как вы хотели, что бы это выглядело, по этому, сделаю лишь набросок. Суть "удаления" очень проста. Открываем ещё один файл на запись, просматривая основной файл, решаем, надо ли нам эта запись. если да - записываем её в результирующий файл.
в конце файлы закрываем, старый удаляем, новый - переименовываем. Ну где то так
procedure TForm1.Button3Click(Sender: TObject);
var
fo, fn: file of tctep;
fon, fnn:string;
rec: tctep;
begin
//Получим имена файлов
fon := 'test.db';
fnn := ChangeFileExt(fon, '.~db');
AssignFile(fo, fon);
AssignFile(fn, fnn);
Reset(fo);
Rewrite(fn);
while not eof(fn) do
begin
Read(fo,rec);
if {Запись нам подходит} then
write(fn, rec);
end;
CloseFile(fo);
CloseFile(fn);
DeleteFile(fo);
RenameFile(fnn, fon);
end;
И не забывайте, что это лишь набросок, вам нужно довести его то того состояния, что бы преподаватель принял - я не знаю вашего преподавателя и не видел типичных работ - следовательно я не могу написать решение, за которое вам сразу поставлят положительную оценку (если бы я сдавал - поставили:) ).
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 25 мая 2008, 13:14
Оценка за ответ: 5
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|