Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.03.2011, 20:26
porphiriy porphiriy вне форума
Прохожий
 
Регистрация: 22.03.2011
Сообщения: 6
Репутация: 10
По умолчанию Цикл не идет до конца

Текст в Мэмо1 должен профильтровываться и в Мэмо2 должны попадать только ссылки на сайты. Они-то попадают, но только первые две. Никак не пойму почему

Код:
procedure TForm1.Button4Click(Sender: TObject);
 var i,j: integer;
begin
j:=0;
i:=0;
for i:=0 to Memo1.Lines.Count-1 do
  if Pos('http',Memo1.Lines[i])=0       
   then
    Memo2.Lines[j]:=''
   else
    begin
     Memo2.Lines[j]:=Copy(Memo1.Lines[i],Pos('http',Memo1.Lines[i]),100);
     j:=j+1;
    end;
{for i:=0 to Memo2.Lines.Count-1 do
 Memo2.Lines[i]:=Trim(Memo2.Lines[i]); }
end;

Последний раз редактировалось porphiriy, 22.03.2011 в 20:33.
Ответить с цитированием
  #2  
Старый 22.03.2011, 20:33
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

какая то магия у вас написана, а так:
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
  i: integer;
begin
  for i:=0 to Memo1.Lines.Count-1 do
  begin  
    if Pos('http',Memo1.Lines[i]) > 0 then
      Memo2.Lines.Add(Copy(Memo1.Lines[i],Pos('http',Memo1.Lines[i]),100));
  end;
end;
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя

Последний раз редактировалось Assistant, 22.03.2011 в 20:50.
Ответить с цитированием
  #3  
Старый 22.03.2011, 20:33
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

Код:
var 
   i: integer;
begin
   for i:=0 to Memo1.Lines.Count-1 do
   if Pos('http',Memo1.Lines[i])<>0
   then
      Memo2.Lines.Add(memo1.Lines[i]);
end;
__________________
Ответить с цитированием
  #4  
Старый 22.03.2011, 20:34
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
procedure TForm1.Button4Click(Sender: TObject);
var i: integer;
begin
  for i := o to Memo1.Lines.Count - 1 do
    if Pos('http',Memo1.Lines[!]) <> o
    then
      Memo2.Lines.add(Memo1.Lines[i]);
end;
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 22.03.2011, 20:38
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Код:
procedure TForm1.Button4Click(Sender: TObject);
var i: integer;
begin
  for i := o to Memo1.Lines.Count - 1 do
    if Pos('http',Memo1.Lines[!]) <> o
    then
      Memo2.Lines.add(Memo1.Lines[i]);
end;


прямо одно и тоже написали в одно время почти
__________________
Ответить с цитированием
  #6  
Старый 23.03.2011, 00:34
porphiriy porphiriy вне форума
Прохожий
 
Регистрация: 22.03.2011
Сообщения: 6
Репутация: 10
По умолчанию

Спасибо, работает, но все равно не пойму где ошибка в моем коде?
Ответить с цитированием
  #7  
Старый 23.03.2011, 00:45
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

Ошибка в том, что ты не читал про TMemo все что нужно.
тебе нужно
Код:
j:=j+1;
вставлять не в условии, а после него, в конце for

P.S.: но лучше так не делай, а делай как в примерах показали, через Memo2.Lines.Add
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя
Ответить с цитированием
  #8  
Старый 24.03.2011, 13:06
porphiriy porphiriy вне форума
Прохожий
 
Регистрация: 22.03.2011
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Assistant
Ошибка в том, что ты не читал про TMemo все что нужно.
тебе нужно
Код:
j:=j+1;
вставлять не в условии, а после него, в конце for

P.S.: но лучше так не делай, а делай как в примерах показали, через Memo2.Lines.Add


Лучше, но мне нужно чтоб, происходило копирование не всей строки Memo1.Lines[i], а только начиная с 'http'.

И не пойму зачем ставить
Код:
j:=j+1;
в другое место???

Тем более мой код-то работает, только не пойму почему цикл "делает" ТОЛЬКО 2 круга (копирует со всего текста только первые две ссылки) и на этом останавливается...
Ответить с цитированием
  #9  
Старый 24.03.2011, 13:17
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от porphiriy
Тем более мой код-то работает, только не пойму почему цикл "делает" ТОЛЬКО 2 круга (копирует со всего текста только первые две ссылки) и на этом останавливается...

Цикл НЕ ДЕЛАЕТ ТОЛЬКО 2 круга, он отрабатывает полностью.

а записываются в мемо2 только 2 значения потому что когда вы его кинули на форму там уже есть 2 строчки !!!
В случае с ADD он (memo2) создаст строку и запишет в нее значение,
в вашем же случае он игнорит (??) потому что у него строк 2 а вы пытаетесь записать 3-ю.

где то примерно так.
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter