Главная страница
    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-1321986296
dreamse
2011-11-22 22:24
2012.03.18
Настройка размера шрифта в редакторе кода


2-1323190986
Zhuck01
2011-12-06 21:03
2012.03.18
как найти символ в строке


2-1322926956
Gu
2011-12-03 19:42
2012.03.18
StringOf


2-1323102981
Prok186
2011-12-05 20:36
2012.03.18
Компонент TMediaPlayer: как при открытии AVI ...


8-1219590082
Agent[007]
2008-08-24 19:01
2012.03.18
Direct3D





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский