B1->Default=0; // при нажатии клавиши ENTER поиск не происходит
for(i=0;i<kol;i++) // цикл поиска в каждом файле
{
CG1->Progress=i; // установка процента прогресса
E2->Text="Не найдено"; // вывод в компоненте "Результат"
FLBox1->ItemIndex=i; // переходна i-ыйфайл
S=0; // обнуление переменной S
fiName=FLBox1->FileName; // присваивание переменной имени текущего файла
if(fiName!="") // если переменная имени файла не пуста
RE1->Lines->LoadFromFile(fiName); // загрузитьтекст
tLen=RE1->Text.Length();// присваивание перем-ой знач-ия длины текста
sLen=E1->Text.Length(); // присв-ие перем-ой знач-ия длины условия
FA=RE1->FindText(E1->Text,stPos,tLen,Options); // операторпоиска
while(FA!=-1) // выполнять цикл пока перем-ая поиска не равна -1
{
stPos=FA+sLen; // изменение стартовой позиции для поиска след-го
S++; // увеличение счетчика количества найденных слов в файле на 1
FA=RE1->FindText(E1->Text,stPos,tLen,Options); // повторпоиска
}
stPos=0; // обнуление стартовой позиции
if(S>0) // если счетчик найд-х слов не равен 0
{
SG1->Cells[0][0]="Путь к файлу"; // заголовок столбца 1
SG1->Cells[1][0]="Найдено"; // заголовок столбца 2
E2->Text="Найдено"; // вывод "Найдено" в поле "Результат"
SG1->Cells[0][col]=fiName; // указ-ся путь к файлу в таблице
SG1->Cells[1][col]=S; // указ-ся колич-во найд-х слов
SG1->RowCount=col+1; // кол-во строк увелич-ся на 1
col++; // переменная увел-ся на 1
}
}
// Далее идет сортировка результатов в таблице
AnsiString seed; // ин-ия символьной перем-ой
long int maxi, need, sum=0; // ин-ияперем-ых
for(int i=1; i < Form1->SG1->RowCount; i++)
{
maxi = mine(i);
need = StrToInt(Form1->SG1->Cells[1][i]);
seed = Form1->SG1->Cells[0][i];
Form1->SG1->Cells[1][i] = Form1->SG1->Cells[1][maxi];
Form1->SG1->Cells[0][i] = Form1->SG1->Cells[0][maxi];
Form1->SG1->Cells[1][maxi] = need;
Form1->SG1->Cells[0][maxi] = seed;
sum+=StrToInt(Form1->SG1->Cells[1][i]);
} // здесь алгоритм сортировки в таблице заканчивается
if(sum>0) // если сумма найденных совпадений больше 0
E2->Text="Найдено "+IntToStr(sum)+" совпадений в "+
IntToStr(Form1->SG1->RowCount-1)+" файлах"; // вывод результата
RE1->Clear(); // очистка компоненты вывода текста
FLBox1->ItemIndex=0; // переход к первому файлу в комп-те "Документы"
B1->Caption="Пуск"; // обратное изм-ие заг-ка кнопки "Процесс" на "Пуск"
B1->Default=1; //при нажатии кнопки ENTER актив-ся кнопка "Пуск"
}
else // если поле ввода "Условие поиска" является пустым или нет файлов
{
E2->Text="Не задано условие"; // В поле "Результат" выводится строка
if(kol<=1)
E2->Text="Нет файлов для поиска"; // В поле "Результат" выводится строка
E1->SetFocus(); // активируется поле ввода "Условие поиска"
}
}
7. После ввода кода в событие OnClick компонента B1 совершаем аналогичные действия для создания события OnClick для компоненты B2. Для B2 вводим следующий код:
void __fastcallTForm1::B2Click(TObject *Sender) //<- вводить не нужно!!!
{ // событие - клик по кнопке "Поиск"
int FA=0, sLen=0; tLen=0; // ин-ияперем-ых
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.