Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];
Внизкак найти символ в строке Найти похожие ветки
← →
Zhuck01 © (2011-12-06 21:03) [0]Есть строка и и список символов, которые не должны встречаться в данной строке. Вроде всё просто. Задаём список, сравниваем. Но вот если список не охото составлять вручную, а возложить это действие на Delphi. То есть, возможно ли задать массив например так ["0".."9","А".."Я"]. Чтоб это всё работало в следующем примере
....
function srvmas(s:string;mas:Array of char):boolean;
var
i,j,k,l:integer;
begin
result:=false;
k:=length(s);
l:=length(mas);
for i:=1 to k do
for j:=0 to l do
if s[i]=mas[j] then
begin
result:=true;
break;
end;
end;
....
if (not srvmas(table1.FieldByName("HOUSE").AsString,vararrayof(["0".."9","А".."Я"]))) then
begin
.....
end;
....
и ещё один вопрос, почему если делать так....
function srvmas(s:string;mas:Array of char):boolean;
var
i,j:integer;
begin
result:=false;
j:=length(s);
for i:=1 to j do
if s[i] in mas then
begin
result:=true;
break;
end;
end;
....
выходит ошибка, ведь я проверяю есть ли символ в массиве символов
Заранее спасибо
← →
Dimka Maslov © (2011-12-06 21:29) [1]Изучать программирование надо не с table1.FieldByName("HOUSE").AsString, а с понятий "переменная", "тип", "символ", "строка", "множество" и т.д.
← →
Dennis I. Komarov © (2011-12-06 21:37) [2]
> Dimka Maslov © (06.12.11 21:29) [1]
Не царское это дело... Пущай другие...
← →
Zhuck01 © (2011-12-06 21:40) [3]
> Dimka Maslov
так что же тут не то и где несовпадение типов? или стрка это не массив символов?
← →
Германн © (2011-12-06 21:47) [4]
> возможно ли задать массив например так ["0".."9","А".."Я"]
Это не массив, а множество.
← →
Rouse_ © (2011-12-06 21:51) [5]uses Masks; -> MatchesMask()
если маской не получается отсечь - используй регулярки
← →
Dimka Maslov © (2011-12-06 21:51) [6]
> и где несовпадение типов
Оператор in осуществляет проверку нахождения символа в множестве, а не в массиве.
← →
Zhuck01 © (2011-12-06 21:54) [7]
> Германн ,> Dimka Maslov
Благодарю, извеняюсь, тупанул
← →
vegarulez (2011-12-07 10:00) [8]Используй регулярные выражения. И будет тебе счастье.
← →
OW © (2011-12-07 11:40) [9]public { Public declarations }
function srvmas(s: string; mas: Array of char):boolean;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.srvmas(s: string; mas: array of char): boolean;
var
i,j,k,l:integer;
begin
result := false;
k := length(s);
l := length(mas) - 1;
for i := 1 to k do
for j := 0 to l do
if s[i] = mas[j] then
begin
result := true;
Exit;
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
if srvmas("HOUSE", ["D","a"]) then
ShowMessage( "D a");
if srvmas("HOUSE", ["D","O"]) then
ShowMessage( "D O");
end;
← →
OW © (2011-12-07 11:44) [10]
> l:=length(mas);
~ length(mas) - 1
никогда не забываем.
Длина = N, последний индекс N-1.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c