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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.01.2012, 15:27   #1
Kapitan4ik
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 47
По умолчанию Парсинг+замена текста

Суть проблемы. Шлю пост запрос с определенными параметрами.
Исходник страницы, после запроса вот:
Код:
<code style="color:#000000;">
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
...
...
...
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
</code>
в делфи парсю вот таким кодом:
Код:
Delete(S,1,pos('00;">',S)+1);
Delete(S,pos('</code>',S),length(S));
остается только:
Код:
00;">
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
...
...
...
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
</code>
собственно пару вопросов:
Как убрать <br> и </b>

и как начинать каждую строку с новой строчки в TMemo?
(после запроса получается что по 2 строки входят в 1)
Заранее спасибо, прошу не кричать ибо я токо начинаю
Kapitan4ik вне форума Ответить с цитированием
Старый 01.01.2012, 15:40   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
Delete(S,1,pos('00;">',S)+5);
Delete(S,pos('</code>',S),length(S));
останется:
Цитата:
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
...
...
...
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
123456<b>:</b>123456<br>
далее
Код:
s:=StringReplace(S,'<br>',#13#10,[rlReplaceAll]);
s:=StringReplace(S,'<b>:</b>','',[rfReplaceAll]);
возможно еще придеться проверить на пустые строки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.01.2012, 15:51   #3
Kapitan4ik
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 47
По умолчанию

спасибо огромное. Но одно но, в Memo1 в первой строке теряется 1 символ
тобишь получается что-то типо
Код:
23456
123456
123456
Kapitan4ik вне форума Ответить с цитированием
Старый 01.01.2012, 15:54   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
Delete(S,1,pos('00;">',S)+4);
перепутал, но первого можно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.01.2012, 16:02   #5
Kapitan4ik
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 47
По умолчанию

Всё, теперь всё просто идеально)
1)Но возникли ещё несколько вопросов:
Как мне теперь сохранить это все в текстовик, но сохранить только то что после двоеточия.Тобишь не
Код:
123456:123456a
а просто
Код:
123456a
и последний вопрос:
Надо чтобы при последующих запросах, Memo1 не перезагружал текст из запроса, а
дополнял уже существующий текст в Memo1.
Например, я уже 1 раз отправил запрос с нужными мне параметрами, в Memo1 спарсились данные:
Код:
123456
123456
123456
Шлю второй запрос, в Memo1 появляется
Код:
654321
654321
654321
А мне надо чтобы было:
Код:
123456
123456
123456
654321
654321
654321
Надеюсь разъяснил понятно. Заранее спасибо)
Kapitan4ik вне форума Ответить с цитированием
Старый 01.01.2012, 16:53   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Надо чтобы при последующих запросах, Memo1 не перезагружал текст из запроса, а
дополнял уже существующий текст в Memo1.
так дополняйте его, а не переписывайте.
Цитата:
Как мне теперь сохранить это все в текстовик, но сохранить только то что после двоеточия.
пробегайтесь по таким строкам и удаляйте в них все что до двоеточия, вы уже умеете это:
Код:
Delete(S,1,Pos(':',S));
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.01.2012, 16:58   #7
Kapitan4ik
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 47
По умолчанию

всё, со всем разобрался. Спасибо огромное вам)
Kapitan4ik вне форума Ответить с цитированием
Старый 01.01.2012, 17:12   #8
Kapitan4ik
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 47
По умолчанию

вешаю на форму кнопку, на нажатие ставлю код:
Код:
Memo1.Text:=S;
Delete(S,1,Pos(':',S));
при нажатии удаляет весь текст из Memo :/
Kapitan4ik вне форума Ответить с цитированием
Старый 01.01.2012, 22:53   #9
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
вешаю на форму кнопку, на нажатие ставлю код:
я бы все таки не Memo1.Text использовал а Memo1.Lines
Код:
for i:=0 to memo1.lines.count-1 do
begin
s:=memo1.lines[i];
Delete(S,1,Pos(':',S));
memo1.lines[i]:=s;
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг текста с html? taurii Работа с сетью в Delphi 0 08.07.2011 10:42
Назначение цвета и парсинг текста, RichEdit JoLan Компоненты Delphi 0 14.03.2011 23:28
Замена текста Lived08 Microsoft Office Excel 11 28.07.2010 14:20
замена текста zetrix Microsoft Office Excel 0 31.10.2006 07:54