'я:');
readln (PhoneR.NameS);
write ('Введіть номер телефону: ');
readln (PhoneR.PhoneS);
write ('Введіть адреса:');
readln (PhoneR.AddressS);
write (PhoneF, PhoneR);
Close (PhoneF);
writeln;
writeln ('Запис успішно додана в базу! ');
writeln;
write ('Натисніть будь-яку клавішу ...');
ReadKey;
end;
Процедура DeletePhone - видаляє запис. Для роботи даної процедури нам будуть потрібні додаткові змінні:
В· temp - файлового типу, в даній змінної будуть зберігається змінені дані;
В· Nazv - строкового типу довжиною 15 символів, в цій змінній буде зберігатися значення поля прізвища запису яку необхідно видалити.
За допомогою операторів Assign і Reset відкриваємо файл phone.dat і встановлюємо покажчик в першу позицію. За допомогою операторів Assign і Reset створюємо тимчасовий файл temp.dat і встановлюємо покажчик у першу позицію. За допомогою операторів Writeln і Readln створюємо інтерфейс для введення прізвища (за прізвищем ми будемо шукати у файлі потрібну нам запис) з клавіатури, присвоюємо введене значення змінної Nazv. Далі в циклі за допомогою умовного оператора порівнюємо по черзі значення поля SurnameS змінної PhoneF зі значенням змінної Nazv, якщо значення не збігаються то даний запис записується в файл temp.dat, інакше пропускається. У результаті маємо два файли з віддаленої та не віддаленій записом, закриваємо обидва файлу. Видаляємо файл phone.dat за допомогою оператора Erase, а файл temp.dat перейменовуємо в phone.dat за допомогою оператора Rename. p> procedure DeletePhone;
var temp: file of Phone;
Nazv: string [15];
begin
Assign (PhoneF, 'Phone phone.dat');
Reset (PhoneF);
Assign (temp, 'Phone temp.dat');
Rewrite (temp);
PhoneR.SurnameS: ='';
PhoneR.NameS: ='';
PhoneR.PhoneS: ='';
PhoneR.AddressS: ='';
ClrScr;
writeln ('Видалення запису:');
writeln;
Write ('Введіть прізвище:');
readln (Nazv);
while not Eof (PhoneF) do
begin
Read (PhoneF, PhoneR);
if PhoneR.SurnameS <> Nazv then Write (temp, PhoneR);
end;
Close (temp);
Close (PhoneF);
Erase (PhoneF);
Rename (temp, 'Phone phone.dat');
writeln;
writeln ('Запис успішно видалена з бази! ');
writeln;
write ('Натисніть будь-яку клавішу ...');
ReadKey;
end;
Процедура EditPhone - редагує запис. Робота даної процедури аналогічна роботі процедури DeletePhone. За винятком того, що в тимчасовий файл додається нова запис, отриманий за коштами введення з клавіатури прізвища, імені, номера телефону.
procedure EditPhone;
var Nazv: string [15];
temp: file of Phone;
begin
Assign (PhoneF, 'Phone phone.dat');
Reset (PhoneF);
Assign (temp, 'Phone temp.dat');
Rewrite (temp);
PhoneR.SurnameS: ='';
PhoneR.NameS: ='';
PhoneR.PhoneS: ='';
PhoneR.AddressS: ='';
ClrScr;
writeln ('Редагування запису: ');
writeln;
Write ('Введіть Прізвище, яку хочете змінити: ');
readln (Nazv);
while not Eof (PhoneF) do
begin
PhoneR.SurnameS: ='';
PhoneR.NameS: ='';
PhoneR.PhoneS: ='';
PhoneR.AddressS: ='';
Read (PhoneF, PhoneR);
if PhoneR.SurnameS <> Nazv then Write (temp, PhoneR);
end;
writeln;
write ('Введіть нове Прізвище:');
readln (PhoneR.SurnameS);
write ('Введіть нове Ім'я: ');
readln (PhoneR.NameS);
write ('Введіть новий номер телефону: ');
readln (PhoneR.PhoneS);
write ('Введіть новий адреса: ');
readln (PhoneR.AddressS);
write (temp, PhoneR);
Close (temp);
Close (PhoneF);
Erase (PhoneF);
Rename (temp, 'Phone phone.dat');
writeln;
writeln ('Запис успішно змінена! ');
writeln;
write ('Натисніть будь-яку клавішу ...');
ReadKey;
end;
Процедура FindSurname - пошук за прізвищем. Для роботи даної процедури нам будуть потрібні додаткові змінні:
В· k - цілого типу, в даній змінної буде зберігається кількість знайдених записів;
В· Nazv - строкового типу довжиною 15 символів, в цій змінній буде зберігатися значення поля прізвища запису яку необхідно знайти.
Перемінної k присвоюємо значення рівне 0. З допомогою операторів As...