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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2010, 21:10   #1
Quadro_O
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 16
По умолчанию Поиск в Мемо.

Как реализовать, чтобы в каждой строке Memo искалось n-значное число(допустим 8ми), если найдётся, чтобы вставлялось в Memo2 (к примеру). Помимо чисел есть и другая информация в строке.
P.S: По Делфи конечно же вопрос ^_^ Буду очень признателен, если поможете, идей вообще нету, только начал изучать Delphi :P
Quadro_O вне форума Ответить с цитированием
Старый 22.04.2010, 21:42   #2
Vado
Пользователь
 
Регистрация: 20.04.2010
Сообщений: 15
По умолчанию

сущ-ет ф-ия lenght - возвращает длину строки.
Можно запустить цикл по всем элементам массива (memo1)
и спрашивать у каждого элемнта, какой он длины. если = 8, то записывается в мемо 2.
Не забудь про счетчики
Vado вне форума Ответить с цитированием
Старый 22.04.2010, 21:45   #3
Quadro_O
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 16
По умолчанию

"запустить цикл по всем элементам массива и спрашивать у каждого элемнта, какой он длины"
Можно чуток поподробней

Тем не менее, спасибо за подсказку
Quadro_O вне форума Ответить с цитированием
Старый 22.04.2010, 23:21   #4
Vado
Пользователь
 
Регистрация: 20.04.2010
Сообщений: 15
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  a: string;
  n,i,m:integer;
begin
  n:=form1.memo1.Lines.count;
  label1.Caption:=inttostr(n);
  m:=0;
  for i:=1 to n do
    begin
      a:=form1.Memo1.Lines[i-1];
      if length(a)= 8
        then
          begin
            form1.Memo2.Lines[m]:=a;
            m:=m+1;
          end
  end;
end;
Vado вне форума Ответить с цитированием
Старый 23.04.2010, 05:26   #5
Quadro_O
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 16
По умолчанию

Это если линия равна 8ми... А у меня линия с многими данными, в которой есть 8-значное число. Мне его надо вытянуть.
Quadro_O вне форума Ответить с цитированием
Старый 23.04.2010, 15:33   #6
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

Quadro_O, вы пробовали и разбирали код что Вам дали?
Если помог - Весы слева
KREGI вне форума Ответить с цитированием
Старый 23.04.2010, 15:53   #7
Quadro_O
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 16
По умолчанию

Да,

Код:
  n:=form1.memo1.Lines.count; - количество строк
  label1.Caption:=inttostr(n); - количество строк выводится в Label
  m:=0; 
  for i:=1 to n do - для каждой строки Memo1
    begin
      a:=form1.Memo1.Lines[i-1]; - строка добавляется в переменную
      if length(a)= 8 - если длина строки равна 8, то...
        then
          begin
            form1.Memo2.Lines[m]:=a; - добавление a в Memo2
            m:=m+1; - Переход на следующую строку
          end
  end;
end;
У меня в строке НЕ ТОЛЬКО число, ещё море всякой информации, строка никогда не будет равна 8, т.к. там в строке более 50 символов, надо вытянуть именно это число.
Quadro_O вне форума Ответить с цитированием
Старый 23.04.2010, 15:56   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

цикл по строкам мемо с проверкой на нужный символ
if Memo1.lines[i][j] in ['0'..'9'] then //цифра
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.04.2010, 20:51   #9
Vado
Пользователь
 
Регистрация: 20.04.2010
Сообщений: 15
По умолчанию

Цитата:
Это если линия равна 8ми... А у меня линия с многими данными, в которой есть 8-значное число. Мне его надо вытянуть.
Эти числа они разделены пробелами или они вперемешку с символами?
Vado вне форума Ответить с цитированием
Старый 23.04.2010, 21:05   #10
Quadro_O
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 16
По умолчанию

между числами и всякими словами стоят пробелы
Quadro_O вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск в мемо ganz Помощь студентам 1 09.12.2009 21:28
Как скопировать текст из мемо одной формы в мемо другой CraZZy RabbIt Общие вопросы Delphi 4 27.02.2009 00:01
Поиск в мемо-2 KVANTOM Общие вопросы Delphi 2 09.01.2009 12:21
Поиск в мемо Marsik Помощь студентам 15 22.06.2008 11:28
Поиск слова в поле типа МЕМО БД PARADOX KAZAKH БД в Delphi 2 05.06.2008 07:22