PDA

Просмотр полной версии : [Помогите!] Поиск в программе


*Хalyava*
16.05.2012, 21:29
здравствуйте, есть проблема
имеются числа и строки в переменной такого вида: Название : (слово) : Год (цифра): Время (цифра)

мне нужно следующее :

при вводе в edit1 какого либо числа (года) должно отображаться вся строка из переменной в таком же виде как и выше.
Пример: В поле edit пишем: 1945

В memo выводится:

ВОВ : 1945-1946 : 21:00 (это пример)

в общем при вводе года мне нужны все строки с таким годом в memo

Помогите пожалуйста это реализовать))

Skrillex3
16.05.2012, 21:57
for i := 0 to memo1.lines.count
begin
if pos(memo1.lines[i],Edit1.text,length(memo1.lines[i])) then //как там точно пос записывается уже не помню ,но думаю идея понятна
begin
Edit2.text:= Memo1.lines[i];
break;
end;
end;
вот так

*Хalyava*
17.05.2012, 16:02
выводит только строки в которых возраст одинаковый:

.. Название: 123 : Возраст: 1-3 : Стоимость: 123 /
.. Название: 123 : Возраст: 1-6 : Стоимость: 123 /
.. Название: 435 : Возраст: 1-3 : Стоимость: 213 /

есть 3 таких строки. из них выводит первую и последнюю.

\\\\\\\\\\\\\\\\\\

а мне нужно выводить те строки, возраста которых попадают попадают в диапазон цифры в edit . Пример:
пишу в edit: 2
программа должна вывести все строки.

вот предложенный код: (немного его переделал)

for i := 0 to memo1.Lines.Count do
begin
z:=StrToInt(v);
b:=StrToInt(n);
if StrToIntDef(edit4.Text, 0) in [z..b] then
begin

if pos(v+'-'+n ,memo1.Lines[i]) > 0 then
begin
listbox1.Items.Add( memo1.Lines[i]);
//break;
end;
end;

P.s. в переменных v и n содержаться цифры возрастов.

v - первая цифра
n - вторая

v+'-'+n - (Пример: 1-3)