|
#1
|
|||
|
|||
Поиск в цикле
Припустим у меня есть мемо и так такие строчки
Цитата:
|
#2
|
||||
|
||||
Код:
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
|
|||
|
|||
Выводит все мемо только немного местами поменяно
|
#4
|
||||
|
||||
А не заметил, там может быть несколько "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
|
|||
|
|||
Теперь выводятса 3 поля но один их них содержит read=1!
|
#6
|
||||
|
||||
Секунду, вопроса не понял. Сейчас переделаю
Скорее всего ты это хотел: Код:
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); Код:
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. |
#7
|
|||
|
|||
Если взять другой код то выводит просто
read="0" > read="0" > read="0" > Последний раз редактировалось Hamsi, 02.12.2010 в 21:43. |
#8
|
||||
|
||||
Измени не много код вместо "...pos('read=0'..." на "...pos('read="0"'...".
Помогаю за Спасибо |
#9
|
|||
|
|||
Да я не нуб,так менял,ничего не выводит
В то время если ему дать исходный код такой как в браузер(не слитый) то все норм |
#10
|
||||
|
||||
Я собственно вопроса тогда не понял. То что ты просил работает. Просто скорее всего у тебя другой текст. Покажи весь текст...
Помогаю за Спасибо |
#11
|
|||
|
|||
Кусок исходного кода из мемо
Цитата:
Цитата:
Квадрат я имею в виду настроящий квадрат(перенос на новую строку) Последний раз редактировалось Hamsi, 02.12.2010 в 22:40. |
#12
|
||||
|
||||
Тебе ж надо вывести все строки, в которых есть слово "read="0"", тогда просто пиши так:
Код:
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); Помогаю за Спасибо |
#13
|
|||
|
|||
Цитата:
read="0" read="0" read="0" Говорю же что все разделено только квадратами тоисть там одна строка как на самом деле 4 наверника |
#14
|
||||
|
||||
Цитата:
Постарайся писать без ошибок, и разъясняй понятнее то, что тебе надо. А то я так и не понял что тебе надо. Помогаю за Спасибо |
#15
|
|||
|
|||
Я не из России так что извини
Хорошо мне надо вывести 1575<tr class='newRow' id="mess1575" read="0" > в которых именно read=0!цифры везде разные! Но если у тебя нет времены то пусть выводит <tr class='newRow' id="mess1575" read="0" > но где read=0 Твой код не работает так как код в мемо слитый тоисть <tr class='newRow' id="mess1575" read="0" > <td class="msg_check" onmouseover="checkOver(this, '1575')" onmouseout="checkOut(this, '1575')" onclick="checkChange(this, '1575')"><div></div><input type="hidden" id="post_check_1575" name="post[1575]" /></td> <td class="messagePicture"> <a href="/sumsar"> <img src="http://cs461.vkontakte.ru/u12541807/e_9fd0d771.jpg" alt=""/> </a> </td> <td class="messageFrom"> <div class="name"> в мемо это все одна строка разделенная квадратиками Последний раз редактировалось Hamsi, 02.12.2010 в 23:04. |