хом порівняння значення змінної i і числа рядків у списку. Якщо результат позитивний, то в лівій частині форми відбувається виділення знайденої рядка. Для цього використовується наступний фрагмент коду:
if i <= kol then
begin
Memo1.SelStart: = Memo1.Perform (EM_LINEINDEX, i-1, 0);. SelLength: = Length (Memo1.Lines [i-1]);. SetFocus; ('Шаблон пошуку не знайдений! ', mtWarning, [mbOK], 0);
При бінарному пошуку спочатку виробляється перевірка на отсортірованності списку даних. Якщо списку не відсортований, то застосування методу неможливо і проводиться вивід відповідного повідомлення. Це проілюстровано наступним фрагментом коду:
flag: = true;
for i: = 1 to kol-1 do
beginmas [i]> mas [i +1] then: = false;;;; flag then
............................................................... ('Дані не відсортовані! Пошук неможливий!', mtWarning, [mbOK], 0);
Якщо ж список відсортований, то проводиться пошук:
str: = LE_Shablon.Text;: = 1;: = kol;: = false; (low <= high) and (not found) do: = (low + high) div 2; str mas [mid] then: = mid +1: = true;;
Для визначення В«вдалостіВ» пошуку використовується булева змінна found. Якщо вона дорівнює true - значить пошук вдалий. У такому випадку знайдена рядок виділяється в правій частині форми, інакше виводиться відповідне повідомлення:
if found then.SelStart: = Memo2.Perform (EM_LINEINDEX, mid-1, 0);. SelLength: = Length (Memo2.Lines [mid-1]);. SetFocus; ('Шаблон пошуку не знайдено! ', mtWarning, [mbOK], 0);
При пошуку подстрок аналогічно проводиться перевірка на наявність списку даних і ключа пошуку. Потім виконується сам пошук:
str: = LE_Shablon.Text;
m: = Length (str);
for k: = 1 to kol do: = Length (temp [k]); i: = 1 to n-m +1 do: = 0; (j
Для визначення В«вдалостіВ» пошуку використовується булева змінна flag. Якщо вона дорівнює true - значить пошук вдалий. У такому випадку знайдена рядок виділяється в правій частині форми, інакше виводиться відповідне повідомлення:
if flag then.SelStart: = Memo1.Perform (EM_LINEINDEX, k-1, 0) + i-1;. SelLength: = m;. SetFocus; ('Шаблон пошуку не знайдено!', mtWarning, [mbOK], 0);
3.2 Інструкції користувача
Після запуску програми на виконання в екрані з'являється головна форма, яка показана на рис. 3.2. (Додаток 3). p align="justify"> Дана форма складається з трьох частин:
область для в вода дани...