![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
pomogite |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
Здравствуйте, есть текст в мемо примерно такой -
Как мне скопировать текст "Nokia 6600" в Memo 2? Если есть ещё куча других тэгов и id=588 естественно меняется, то есть нужно вырезать в мемо2 названия всех моделей... |
|||
|
||||
Grag |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.12.2007 Где: Красноярск Репутация: нет Всего: нет |
Я бы сделал так: В цикле по всем строкам мемо брал строку, определял позицию вхождения подстроки "<a href=", затем с этой позиции определял позицию закрывающей скобки ">". запоминал ее, затем определял позицию следующей открывающей скобки "<", запоминал и ее. Все что между этими позициями копировал в мемо2. Это и будут названия моделей... Лобовое решение проблемы...
![]() |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 16 Всего: 54 |
TRegExp
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 7 Всего: 50 |
Регулярки http://sites.google.com/site/kemiisto/article/tregexpr
|
|||
|
||||
sbfactory |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 26.2.2010 Репутация: нет Всего: нет |
Можно сделать банально и просто:
string:='<td class="tcl"><span class="Sell"><a href="http://magazin.ru/lot.php?id=588">Nokia 6600</a></span></td>'; ///скопируем нужную часть строки: string:=copy(string, lastdelimiter('">', string)+2, pos('</a>', string)-lastdelimiter('">', string)-3); memo2.lines.add(string); Вот как то так... |
|||
|
||||
Proxin |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 363 Регистрация: 21.6.2008 Репутация: 1 Всего: 3 |
sbfactory, string в качестве имени переменной ни в коем случае нельзя.
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
образец для поиска может выглядеть так, например:
|
|||
|
||||
sbfactory |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 26.2.2010 Репутация: нет Всего: нет |
Точно, я просто сразу тут писал код, значит пусть заменит string на str; |
|||
|
||||
pomogite |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
Всем большое спасибо, я разобралась =)
Теперь возникла другая проблема, большие файлы очень долго обрабатываются, можно хоть как-то ускорить обработку? Вот код:
Это сообщение отредактировал(а) pomogite - 4.4.2010, 11:45 |
|||
|
||||
sbfactory |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 26.2.2010 Репутация: нет Всего: нет |
for i:=0 to Memo1.Lines.Count-1 do
begin s:=Memo1.Lines.Text[i]; memo2.Lines.Text:=ExtractLot(Memo1.Text); ^ Собака тут зарыта ^ Представь сколько в большом файле строк, каждая строка - обращение к компоненту мемо, что само по себе долго. Советую загружать текст в TStringlist, обрабатывать, потом выводить его в мемо. |
|||
|
||||
Dom |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 7.8.2005 Репутация: 3 Всего: 4 |
Мне кажется что дело тут в другом.
1. Тут что-то судя по всему лишнее. Например зачем переменная s?
2. Передается в процедуру ExtractLot сразу все содержимое Мемо, и тогда зачем вообще использовать цикл? 3. Почему просто не написать?
|
||||
|
|||||
pomogite |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
Спасибо большое =) И правда цикл был ни к чему.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |