Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2015, 16:20   #51
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

evg_m Всё равно выдаёт ошибку только уже в
Код:
( Pos(......, fam) =1 ) then
что не так в коде
Код:
unit search_file;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, xpman, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    OpenDialog1: TOpenDialog;
    XPManifest1: TXPManifest;
    procedure ScanDir(StartDir: string; Mask: string; List: TStrings); //поиск в папке
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ts: TStringList; // списко строк, сюда загружеются все пути к файлам *.txt

implementation

{$R *.dfm}

procedure tform1.ScanDir(StartDir: string; Mask: string; List: TStrings);
//процедура поискаи заполнения   списка строк
var
  SearchRec: TSearchRec;
begin
   Mask := '*.txt';

  if StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\';
  if FindFirst(StartDir + Mask, faAnyFile, SearchRec) = 0 then
  begin
    repeat
      Application.ProcessMessages;
      if (SearchRec.Attr and faDirectory) <> faDirectory then
        List.Add(StartDir + SearchRec.Name)
      else
        if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
        begin
          List.Add(StartDir + SearchRec.Name + '\');
          ScanDir(StartDir + SearchRec.Name + '\', Mask, List);
        end;
    until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);

begin
  memo1.ReadOnly := True; //отмена редактирования содержимого memo1
  memo1.clear; // чистка мемо
  ts := tstringlist.Create(); //создаем список строк
  ts.Clear; //чистим
            //1 параметр-путь к папке с файлами
            //2-маска
            //3-куда заполняем
  ScanDir(ExtractFilePath(ParamStr(0)), '1', ts);

  


end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ts.free; //освобождаем память, занятую ts
end;

procedure TForm1.Button1Click(Sender: TObject);
var s, filespisok: string; // строка пути к одному файлу из списка ts[i]
//строка текущее
  i, j: integer; //переменная для адресации по tsp[i], и вторая переменная
  //для поиска в search списке
  search: TStringList; //список, куда грузится файл

  god, fam, im, otch: string;
begin
  search := TStringList.Create;
  memo1.Clear;

  god := Trim(AnsiLowerCase(LabeledEdit1.text));
  fam := Trim(AnsiLowerCase(LabeledEdit2.text)); //убираем пробелы и приводим к общему регистру
  im := Trim(AnsiLowerCase(LabeledEdit3.text));
  otch := Trim(AnsiLowerCase(LabeledEdit4.text));

  for i := 0 to ts.Count - 1 do //просмотр списка с путями к файлам
  begin
    s := ts[i]; //загрузка i-го пути в строку
    search.clear; //чистка списка с содержимым загруженного файла


    if FileExists(s) then //если файл найден, то
    begin
      search.LoadFromFile(ts[i]); //загружаем его в список

      for j := 0 to search.count - 1 do //выполняем поиск по списку пока не последняя строка
      begin
         if (j mod 8)=4 and
            ( Pos(......, fam) =1 ) then


        if Pos(Trim(AnsiLowerCase(search[j])), fam) = 1 then //если есть вхождение подстрки
       // в строку, то выводим название файла
       //т.е. если ввели вор, а в файле воропаев, то условие сработает и в memo результат
       //выведится

          memo1.Lines.Add(' ' + ExtractFileName(ts[i]));


      end;




    end
    else
    begin
      ShowMessage('файл потерян!');
      Continue;
    end;


  end;

  search.free; //освобождаем память.
end;




end.
OTGB вне форума Ответить с цитированием
Старый 08.06.2015, 16:25   #52
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
if (j mod 8)=4 and
            ( Pos(......, fam) =1 ) then
А кто будет 1-ое условие в скобочки брать? Или берутся только четные?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2015, 16:56   #53
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

Аватар и какое условие в скобочки брать?
OTGB вне форума Ответить с цитированием
Старый 08.06.2015, 17:27   #54
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от OTGB Посмотреть сообщение
Аватар и какое условие в скобочки брать?
всё, к чему применяются ЛОГИЧЕСКИЕ операнды (NOT, OR, AND)!

для вашего случая:

Код:
       if ( (j mod 8)=4 ) and
            ( Pos(......, fam) =1 ) then
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2015, 21:19   #55
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

Serge_Bliznykov Честно не очень всё понимаю.( Посмотри те что же за ошибка в этой программе.
Вложения
Тип файла: rar WinRAR archive.rar (181.9 Кб, 6 просмотров)

Последний раз редактировалось OTGB; 08.06.2015 в 21:22.
OTGB вне форума Ответить с цитированием
Старый 08.06.2015, 21:24   #56
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что тут понимать, скобки посчитай, глаза попяль на пример от Сержа
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2015, 21:30   #57
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

Аватар причём тут кол-во скобок?
OTGB вне форума Ответить с цитированием
Старый 08.06.2015, 21:33   #58
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Я пас, педагог с меня хреновый
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2015, 21:39   #59
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

http://www.programmersforum.ru/showp...4&postcount=52
Вар 1. скобки выделенные красным.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 08.06.2015, 21:54   #60
OTGB
Форумчанин
 
Аватар для OTGB
 
Регистрация: 06.05.2015
Сообщений: 120
По умолчанию

evg_m и опять ошибка вот тут
Код:
( Pos(......, fam) =1 ) then
Изображения
Тип файла: jpg 323к.jpg (39.9 Кб, 147 просмотров)

Последний раз редактировалось OTGB; 08.06.2015 в 22:04.
OTGB вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками в блокноте Lau Microsoft Office Word 11 10.08.2010 12:36
Написать в блокноте guffer Общие вопросы Delphi 10 23.08.2009 20:05
Цвет фона в блокноте. Alexxx92 Паскаль, Turbo Pascal, PascalABC.NET 4 18.05.2009 04:45
редактирование текста в блокноте. Kio Помощь студентам 16 21.07.2008 17:02
Как работает Замена в блокноте? Alar Софт 9 14.01.2008 11:07