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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.12.2010, 20:24
Hamsi Hamsi вне форума
Прохожий
 
Регистрация: 02.12.2010
Сообщения: 22
Репутация: 10
Сообщение Поиск в цикле

Припустим у меня есть мемо и так такие строчки
Цитата:
<blogspot><jjjjj>read=0
<abcd><sda>read=1
<saddas><saa>read=0
<sdaccx><asw>read=0
Нужно вывести все поля с read=0 куда-нибудь
Ответить с цитированием
  #2  
Старый 02.12.2010, 20:48
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Код:
var s: string;
begin
...
s:='';
for i:=0 to memo1.Lines.Count-1 do
  if(pos('read=0', memo1.Lines.Strings[i]) > 0) then
    for k:=i+1 to Memo1.Lines.Count-1 do
      s:=s+Memo1.Lines.Strings[k];

ShowMessage(s);
Как-то так. Наверно можно проще, но что первое в голову пришло.
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 02.12.2010, 20:54
Hamsi Hamsi вне форума
Прохожий
 
Регистрация: 02.12.2010
Сообщения: 22
Репутация: 10
По умолчанию

Выводит все мемо только немного местами поменяно
Ответить с цитированием
  #4  
Старый 02.12.2010, 20:55
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

А не заметил, там может быть несколько "read=0". Сейчас исправлю.

Пожалуйста:
Код:
var s: string;
b: boolean;
i, k: Integer;
begin
b:=false;
s:='';
for i:=0 to memo1.Lines.Count-1 do
  if(pos('read=0', memo1.Lines.Strings[i]) > 0) and(not(b)) then begin
    b:=true;
    for k:=i+1 to Memo1.Lines.Count-1 do
      s:=s+Memo1.Lines.Strings[k]+ #13;
  end;
  s:=trim(s);

ShowMessage(s);

Разве что можно убрать "+#13", тогда все что после "read=0" выведется в одну строку...
__________________
Помогаю за Спасибо

Последний раз редактировалось v1s2222, 02.12.2010 в 20:58.
Ответить с цитированием
  #5  
Старый 02.12.2010, 21:08
Hamsi Hamsi вне форума
Прохожий
 
Регистрация: 02.12.2010
Сообщения: 22
Репутация: 10
По умолчанию

Теперь выводятса 3 поля но один их них содержит read=1!
Ответить с цитированием
  #6  
Старый 02.12.2010, 21:09
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Секунду, вопроса не понял. Сейчас переделаю
Скорее всего ты это хотел:
Код:
var s: string;
i: Integer;
begin
s:='';
for i:=0 to memo1.Lines.Count-1 do
  if(pos('read=0', memo1.Lines.Strings[i]) > 0) then begin
    s:=s+Memo1.Lines.Strings[i]+ #13;
  end;
  s:=trim(s);

ShowMessage(s);
А если хотел чтоб "read=0" не выводилось, то:
Код:
var s: string;
i: Integer;
begin
s:='';
for i:=0 to memo1.Lines.Count-1 do
  if(pos('read=0', memo1.Lines.Strings[i]) > 0) then begin
    s:=s+Copy(Memo1.Lines.Strings[i], 1, (length(Memo1.Lines.Strings[i]) - length('read=0')))+ #13;
  end;
  s:=trim(s);

ShowMessage(s);
__________________
Помогаю за Спасибо

Последний раз редактировалось v1s2222, 02.12.2010 в 21:15.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter