Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1322326868
boriskb
2011-11-26 21:01
2012.03.18
Вакансии


2-1323074402
gvozdkoff
2011-12-05 12:40
2012.03.18
длина строк в TStringList


15-1322123135
Медвежонок Пятачок
2011-11-24 12:25
2012.03.18
"А при Фрэнке такого не было"


15-1321901455
KilkennyCat
2011-11-21 22:50
2012.03.18
скока стоит...


2-1323077597
LDV
2011-12-05 13:33
2012.03.18
создание таблиц бд в классе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский