Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос [D7, XP]


AntonUSAnoV ©   (2008-01-25 19:04:00) 

Нужно сделать поиск строки в поле таблицы типа Мемо,
я делаю так:
bufcheck:=name.Text+' - '+result.Lines[i];     // это то что нужно найти form1.Table1.Filter:='(fam='''+bufer+''') and (name='''+bufname+'''or name is null)and(otchestvo='''+bufotch+'''or otchestvo is null)';  // тут переходим в таблице на нужную запись

bufcheck2:=form1.dbmemo1.text;   // это то где нужно найти

pos2:=pos(bufcheck,bufcheck2);  //так я ищу, но pos2 всё время=0, bufcheck,bufcheck2 - тип ansistring.        Кто подскажет почему так, или может есть другие варианты, да и это всё собственно нужно чтобы не записывать дважды в поле одно и тоже значение...


AntonUSAnoV   (2008-01-25 20:18:00) [1]

Так пока всё, проблема очень дурацкая была : в той строке где данные искались стоял лишний пробел, изиняюсь..


AntonUSAnoV   (2008-01-25 20:12:00) [2]

1) чемпионат - 1 место
2) тут поле мемо, по этому тут разный текст, потом 'чемпионат - 1 место'

т.е. bufcheck2 содержит и др. текст, но строка 'чемпионат - 1 место' там есть, а pos2 всё равно нулю равен, и строка добавляется в очередной раз..


{RASkov}   (2008-01-25 20:03:00) [3]

> [2] AntonUSAnoV   (25.01.08 20:00)
> код выполняется в методах другой формы.,

Уговорил :)

сделай перед:
 pos2:=pos(AnsiUpperCase(bufcheck), AnsiUpperCase(bufcheck2));
вызов вот так вот:
 ShowMessage(bufcheck);
 ShowMessage(bufcheck2);

Что видишь?


AntonUSAnoV   (2008-01-25 20:00:00) [4]

Не работает, регитср и там и там одинаковый , зачем приведение к верхнему?, name.text это Tedit, код выполняется в методах другой формы., в коде происходит копирование определённой строки в поле таблицы типа Мемо, и вот чтобы эта строка каждый раз не добавлялась нужно как то эту строку искать в этом поле...


{RASkov}   (2008-01-25 19:50:00) [5]

> [0] AntonUSAnoV   (25.01.08 19:04)
> pos2:=pos(bufcheck,bufcheck2);

Попробуй так:
pos2:=pos(AnsiUpperCase(bufcheck), AnsiUpperCase(bufcheck2));

а name.Text это у тебя name: TEdit; - да? :) круто) И как оценивать твой труд?
Ты даже не потрудился нормально оформлять и правильно писать свой код..... Form1 - нафик оно это вообще нужно.... только не говори, что этот код выполняется не в методах этой самой Form1 :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо