Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2011, 00:39   #1
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию Поиско в edit.text

Необходимо сделать условие если в edit1.text написано Andrei то условие должно срабатывать так же если после Andrei есть какой-то другой текст условие тоже должно срабатывать.

Попробовал реализовать это таким способом:
Код:
if (Pos('Andrei',edit1.text) >0) then *
Но это условие срабатывает и в том случае если и перед словом Andrei есть какой-то текст - чего недолжно происходить.

Подскажите что делать.

Последний раз редактировалось celovec; 14.10.2011 в 00:43.
celovec вне форума Ответить с цитированием
Старый 14.10.2011, 00:47   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Учитыйвайте длинну слова.
Пиводите все к одному регистру.

Код:
if (Length(Edit1.text) = Length('Vasia')) and (Pos(LowerCase('Vasia'),LowerCase(Edit1.text))> 0) then
Человек_Борща вне форума Ответить с цитированием
Старый 14.10.2011, 00:48   #3
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

Код:
if (Pos('Andrei',edit1.text)=1) then
fate вне форума Ответить с цитированием
Старый 14.10.2011, 00:53   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

fate, чем ваш код отличается от
Код:
 
if (Pos('Andrei',edit1.text)>0) then
По поводу:
Если в строке есть "вася" и до него что-то, есть условие не выполняется.
Если после "вася" есть что-то то условие выполняется.

По поводу первого, я вам во втором сообщении подсказал..
По поводу второго, то чуть по другому надо:
Код:
var
 i,i2:integer;
 s1,s2:string;

s1:=Edit1.Text;
s2:='Vasia';

if (Pos(LowerCase(s2),LowerCase(s1))> 0) then
begin
if (Length(s1) > Length(s2)) begin
begin
 for i:=1 to Length(s1) do
 begin
   for i2:=1 to Length(s2) do
   begin
      //Тут проверяем по символьно, находится ли наше слово вначале строки s1, если нет, то exit 
   end;
 end;
end;
end;

Последний раз редактировалось Человек_Борща; 14.10.2011 в 01:02.
Человек_Борща вне форума Ответить с цитированием
Старый 14.10.2011, 00:56   #5
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

тем что код
Код:
if (Pos('Andrei',edit1.text)>0) then
вернет true в любом случаи если в эдит присутствует Andrei, а код
Код:
if (Pos('Andrei',edit1.text)=1) then
вернет true если Andrei стоит первым в эдит т.е. перед Andrei нет больше символов никаких, вроде это нужно было ТС
fate вне форума Ответить с цитированием
Старый 14.10.2011, 01:04   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Мдя а я и забыл что Pos возвращает.. :D
Человек_Борща вне форума Ответить с цитированием
Старый 14.10.2011, 01:13   #7
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Код:
const
  FindStr = 'Andrei';
begin
  if Copy(edit1.text, 1, Length(FindStr)) = FindStr then
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 14.10.2011, 01:16   #8
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

chertovich да зачем все усложнять? если pos прекрасно справляется с поставленной задачей
fate вне форума Ответить с цитированием
Старый 14.10.2011, 11:14   #9
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

fate и Человек_Борща спасибо большое. Воспользовался примером fate.
celovec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование строки из Edit в другой Edit. Ibanez Wizard Win Api 3 29.03.2011 02:46
Edit.Text Cassius Общие вопросы Delphi 9 24.03.2011 21:58
Воплотить идею: for i:=0 to 100 Edit[i].text:=random(100) tigr1991 Общие вопросы Delphi 6 29.09.2010 18:53
Процедуры: Ввод(text)-Вычисление(string)-Вывод(text) FYBVFPFYBC Помощь студентам 2 06.05.2010 23:15
Text -> Hex AnK0r Общие вопросы Delphi 3 07.12.2007 20:36