- номер запису у файлі} {Цикл пошуку по збігу поля Name}
inc (D); (DataFile, Data); Data do while Length (Name)
write (DataFile, Data); {Розміщуємо її на місце видаляється}
seek (DataFile, pred (FileSize (DataFile))); (DataFile); {Видаляємо останній запис} PS ^ do D: = IndexOf (At (Location));
PS ^. AtFree (D); {Видаляємо рядок з колекції} {Оновлюємо вікно}; {DeleteItem}
{-------------} AddItem (Edit: Boolean);
{Додає новий або редагує старий елемент даних}
const = 1; = 2; = LName + LPhone + LAddr;: DataType;: TRect;: PDialog;, BPhone, BAddr: PInputLine;: Word;: Word;: String;: PString; (DataFile, FileSize (DataFile)); {Додаємо записи в кінець файлу} {Цикл введення записів} Edit then {Готуємо заголовок}: = 'Редагування:' (FileSize (DataFile) +1, s); Length (s) < 3 do: = '0 '+ s;
s: = 'Вводиться запис N' + s;
end; (Data, SizeOf (Data), ''); {Заповнюємо поля пробілами}. Assign (15,5,65,16);: = New (PDialog, Init (R, s )); {Створюємо вікно} InWin ^ do {Формуємо вікно}. Assign (2, y +1,2 + LName, y +2);: = New (PInputLine, Init (R, LName)); (BName); {Поле імені}. Assign (2, y, 2 + Lname, y +1); (New (PLabel, Init (R, 'Ім'я', BName)));. Assign (2, y + dy +1,2 + LPhone, y + dy +2);: = New (PInputLine, Init (R, LPhone)); (BPhone); {Поле телефону}. Assign (2, y + dy, 2 + LPhone, y + dy +1 ); (New (PLabel, Init (R, 'Телефон', BPhone)));. Assign (2, y +2 * dy +1,2 + LAddr, y +2 * dy +2);: = New ( PInputLine, Init (R, LAddr)); (BAddr); {Поле адреси}. Assign (2, y +2 * dy, 2 + LAddr, y +2 * dy +1); (New (PLabel, Init (R , 'Адреса', BAddr)));
{Вставляємо дві командні кнопки (далі)}
R.Assign (2, y +3 * dy +1,12, y +3 * dy +3); (New (PButton, Init (R, 'Ввести', cmOk, bfDefault) ));. Assign (2 +20, y +3 * dy +1,12 +20, y +3 * dy +3); (New (PButton, Init (R, 'Вихід', cmCancel, bfNormal))) ; (False) {Активізуємо першу кнопку}; {Кінець формування вікна} Edit then with Data do
begin {Готуємо початковий текст}: = PS ^. At (Location); {Читаємо дані з запису}
s: = p ^;: = copy (s, 1, LName);: = copy (s, succ (LName), LPhone);: = copy (s, succ (LName + LPhone ), LAddr);
InWin ^. SetData (Data) {Вставляємо текст в поля введення}
end;: = DeskTop ^. ExecView (InWin); {Виконуємо діалог} Control = cmOk then with Data doEdit then; {Видаляємо стару запис}: = BName ^. Data ^;: = BPhone ^ . Data ^;: = BAddr ^. Data ^; [0]: = chr (L); (s [1], L, '
OldCount: =...