procedure TForm1.Edit1KeyPress (Sender:TObject);
var
i:integer;
a:string;
number: set of char;
begin
number:=['0','1','2','3','4','5','6','7','8','9'];
i:=1;
a:=Edit1.Text;
repeat
if (a in figures) then i:=i+1 else begin
delete(a,i,1);
if a='' then a:='1';
end;
until i>length(a);
end;
Поиск в наборе строк
Код:
А как сделать то же самое, но для строк. Array of string не очень подходит, потому что нужно запускать цикл. Хотелось бы получить что-нибудь в роде:
Код:
procedure AAAA;
var
cities: set of string;
begin
cities:=['Moscow', 'New York', 'London', 'Melbourne']; //может быть порядка 20ти строк
if (Edit1.Text in cities) then ....;
end;
var
cities: set of string;
begin
cities:=['Moscow', 'New York', 'London', 'Melbourne']; //может быть порядка 20ти строк
if (Edit1.Text in cities) then ....;
end;
Короче говоря, как сформировать набор строк, а потом с ним сверяться?
Array of String + AnsiMatchText (StrUtils). В любом случае без цикла никак, здесь он в этой функции.