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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2012, 17:07   #1
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию Оптимизация парсинга

Задача следующая, вваодится строка1, от 0 до числа строк проводится поиск и если в строке находится строка1 то она копируется.
Код:
if pos(form2.sedit11.Text,a.Strings[i])<>0 then memo1.lines.Add(a.Strings[i]);
Ну функция pos ищет sedit11 во всей строке a.Strings[i]. Из-за этого парсер иногда выдаёт неверные результаты, как сделать что бы проверяло только начало строки. Т.е если строка a.Strings[i] начинается с sedit11 то memo1.lines.Add(a.Strings[i]);
Lauri вне форума Ответить с цитированием
Старый 12.01.2012, 17:30   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
if pos(form2.sedit11.Text,a.Strings[i])=1 then memo1.lines.Add(a.Strings[i]);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.01.2012, 17:45   #3
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
if pos(form2.sedit11.Text,a.Strings[i])=1 then memo1.lines.Add(a.Strings[i]);
Это тоже самое что и у меня выше или я ошибаюсь?
Результат тот же выдаёт, с лишними строками
Нужно что бы тянуло эту строку только если она начинается с form2.sedit11.Text

Последний раз редактировалось Lauri; 12.01.2012 в 17:48.
Lauri вне форума Ответить с цитированием
Старый 12.01.2012, 20:08   #4
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Тебе такой код и дали. Равенство на 1 и проверяет вхождение строки в строку с самого начала.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 12.01.2012, 21:31   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Ну тогда примерно так
Код:
If Copy (a.Strings[i], 1, Length (form2.sedit11.Text)) = form2.sedit11.Text then memo1.lines.Add(a.Strings[i])
FaTaL вне форума Ответить с цитированием
Старый 14.01.2012, 00:04   #6
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию

Спасибо большое, то что нужно
Lauri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упрощения парсинга текста Lauri Общие вопросы Delphi 11 16.07.2011 14:09
Не выводится текст парсинга bulldog5293 Работа с сетью в Delphi 0 30.04.2011 18:26
ВАРИАНТЫ ПАРСИНГА Vova777 Общие вопросы Delphi 2 04.09.2010 23:51
Мелкая ошибка парсинга Legenda PHP 4 02.10.2008 17:52
пример парсинга Stanislav Общие вопросы Delphi 4 14.01.2008 03:48