Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 954
∙ повысить рейтинг »
Jimhucksly
Статус: 5-й класс
Рейтинг: 791
∙ повысить рейтинг »
Тимошенко Дмитрий
Статус: Студент
Рейтинг: 493
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Delphi

Номер выпуска:1447
Дата выхода:16.10.2009, 12:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:578 / 208
Вопросов / ответов:1 / 1

Вопрос № 173159: Добрый день. Пишу программу для поиска файлов. Поиск должен выполняться в файлах с атрибутом только для чтения. Но почему-то ищет во всех файлах. Не могу понять в чем ошибка в коде.


Вопрос № 173159:

Добрый день.
Пишу программу для поиска файлов. Поиск должен выполняться в файлах с атрибутом только для чтения. Но почему-то ищет во всех файлах. Не могу понять в чем ошибка в коде.URL >>

Отправлен: 11.10.2009, 12:20
Вопрос задал: ghost32, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Абельхарисов Руслан/Marked One, Практикант :
Здравствуйте, ghost32.
Что бы поиск слова выполнялся только в файлах с аттрибутом только для чтения, надо код, отвечающий за это действие, поместить в условный оператор:
Код:
At:= FileGetAttr(panel1.Caption+ ListBox1.Items.Strings[index]);
if At and faReadOnly = faReadOnly then
begin
{Поиск слова}
end;

Таким образом процедура Button1Click изменяется:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var WordSearch:array [1..7] of char;
F:file of char;
CountWord,Possit ion,CountRead,index,At:integer;
begin
Memo1.Clear; //поиск
At:=0;
if Length(edSearch.Text)<>7 then Memo1.Lines.Add('Искомое слово должно содержать 7 символов!')
else
for index:=0 to ListBox1.Count-1 do
begin
if (ExtractFileExt(panel1.Caption+ ListBox1.Items.Strings[index]))='.txt' then
begin
At:= FileGetAttr(panel1.Caption+ ListBox1.Items.Strings[index]);
if At and faReadOnly = faReadOnly then
begin
FileSetAttr((panel1.Caption+ ListBox1.Items.Strings[index]), At - faReadOnly );
AssignFile(F,(panel1.Caption+ ListBox1.Items.Strings[index]));
Reset(F);
CountWord:=0;
Possition:=0;
CountRead:=7;
while (not EOF(F)) and (CountRead=7) do
begin
BlockRead(F,WordSearch,7,CountRead);
if WordSearch=edSearch.Text
then
begin
CountWord:=CountWord+1;
Possition:=Possition+7;
end
else
begin
Possition:=Possition+1;
end;
Seek(F,Possition);
end;
Memo1.Lines.Add(inttostr(CountWord)+' '+ListBox1.Items.Strings[index]);
CloseFile(F);
if At and faReadOnly <> 0 then
begin
FileSetAttr((panel1.Caption+ ListBox1.Items.Strings[index]), faReadOnly);
At:=0;
end;
end;
end;
end;
end;

Полный код проекта прикриплен к ответу.
Удачи!!! Прикрепленный файл: загрузить »

Ответ отправил: Абельхарисов Руслан/Marked One, Практикант
Ответ отправлен: 11.10.2009, 13:51

Оценка ответа: 5
Комментарий к оценке:
Спасибо большое все работает)

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 255286 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.9 от 25.09.2009

    В избранное