Усовершенствовать скрипт

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Респект тебе man , это то что я хотел :)
[syntax=Delphi] [/syntax]
RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

А если так?
добавить в процедуру переменную Filter типа TStringList, а строчку

Код: Выделить всё

if (Ext = '.BMP') or (Ext = '.JPG') or (Ext = '.JPEG') or (Ext = '.GIF') 
заменить на

Код: Выделить всё

if Filter.Find(Ext, i)
Причем в данном случае Find не чувствителен к регистру, а список можешь готовить заранее Filter.Add('.bmp'); Filter.Add('.jpg'); ...
The trurh is out there...
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Выглядит красиво..
А мона примерчик, а то уменя какие-то проблемы, мож че не так вотворяю. Да и Delphi-а выдал что у меня Uses не полон(завершон)??
[syntax=Delphi] [/syntax]
RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

На форме лежит TButton и TEdit. При нажатии кнопки проверяется наличие текста из Edit1 в списке из (".bmp", ".jpg").

Код: Выделить всё

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s:TStringList;
  EXT:string;
  i: integer;
begin
 EXT:=Edit1.Text;
 s:=TStringList.Create;
 s.Add('.BMP');
 s.Add('.JPG');
 //...
 if s.Find(EXT,i) then ShowMessage('Yes')
 else ShowMessage('NO');
 s.Free;
end;

end.
The trurh is out there...
RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

Критерии фильтрации удобнее хранить во внешней переменной, и передавать потом в качестве параметра поэтому строки s:=TStringList.Create; и s.Free; лучше перенести куда-нить в OnFromCreate и а OnFormClose соответственнно.
Или непосредственно перед вызовом процедуры поиска s:=TStringList.Create; s.Add..., а после сразу s.Free
The trurh is out there...
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Если мне память не изменяет, то TStrings использовать не рекомендуется, лучше взять его потомка TStringList.
С уважением, Lost Angel...
Eugie
Сообщения: 708
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

Да, TStrings содержит абстрактные методы, поэтому сконструировать непосредственно его экземпляр нельзя.
RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

Да, да, конечно, не TStings, а TStringList
Сорри, очепятка получилась, даже не знаю почему, прогонял ведь пример, а TStings он даже не откомпилируется.
The trurh is out there...
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Но здесь получается, что скрипт проверяет уже строку в Edite, а не содиржимое папки...
[syntax=Delphi] [/syntax]
RoKon
Сообщения: 82
Зарегистрирован: 27 мар 2005, 12:24
Откуда: Saransk City
Контактная информация:

ну да, это же пример
The trurh is out there...
Ответить