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

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

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

Восстановить пароль

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

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

Задача:
Пройтись по списку, если строка совпадает с искомой, то скопировать найденую строку и + количество строк ниже искомой, которое задаёт пользователь

Вот то что имею сейчас, но запутался уже очень
Код:
procedure TForm1.sBitBtn1Click(Sender: TObject);
var
LinkParsIn,LinkParsOut:tstringlist;
g,gg:integer;
begin
gg:=0;
LinkParsIn:=tstringlist.Create;
LinkParsOut:=tstringlist.Create;
linkparsIn.Text:=memo3.text;
for g:=0 to linkparsIn.Count-1 do begin
 if pos(form1.edit1.Text,linkparsIn.Strings[g])<>0 then
 for gg:=0 to strtoint(sedit5.Text) do
 begin
  linkparsOut.Add(linkparsIn.Strings[g+1]) ;
 end;
end;
memo1.Text:=linkparsOut.Text;
linkparsIn.Free;
linkparsOut.Free;
end;
Lauri вне форума Ответить с цитированием
Старый 08.03.2012, 03:37   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

1. Прочитайте значение слова "парсинг" т.к. то, что вы делате - не является таковым.
2. для сравнения строк нужно использовать CompareStr или CompareMem
3. Строки нужно привести в одинаковый регистр, предварительно вырезав все пробелы.
Человек_Борща вне форума Ответить с цитированием
Старый 08.03.2012, 12:21   #3
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
1. Прочитайте значение слова "парсинг" т.к. то, что вы делате - не является таковым.
2. для сравнения строк нужно использовать CompareStr или CompareMem
3. Строки нужно привести в одинаковый регистр, предварительно вырезав все пробелы.
Извините, не так выразился.
Второй пункт не подходит, в моём случаи всё же, лучше через pos
Lauri вне форума Ответить с цитированием
Старый 08.03.2012, 14:54   #4
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию

Вроде разобрался
Код:
procedure TForm1.sBitBtn1Click(Sender: TObject);
var
LinkParsIn,LinkParsOut:tstringlist;
g,gg,ggg:integer;
begin
 gg:=0;
 LinkParsIn:=tstringlist.Create;
 LinkParsOut:=tstringlist.Create;
 linkparsIn.Text:=memo3.text;
 for g:=0 to linkparsIn.Count-1 do
 begin
  if pos(form1.edit1.Text,linkparsIn.Strings[g])<>0 then
  begin
   ggg:=g;
   linkparsOut.Add(linkparsIn.Strings[ggg]) ;
   for gg:=1 to strtoint(sedit5.Text) do
   begin
    linkparsOut.Add(linkparsIn.Strings[ggg+1]) ;
    ggg:=ggg+1;
   end;
  end;
 end;
 memo1.Text:=linkparsOut.Text;
 linkparsIn.Free;
 linkparsOut.Free;
end;
Lauri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки парсинга waka2ebawer PHP 2 26.02.2012 19:31
Оптимизация парсинга Lauri Общие вопросы Delphi 5 14.01.2012 00:04
ВАРИАНТЫ ПАРСИНГА Vova777 Общие вопросы Delphi 2 04.09.2010 23:51
Мелкая ошибка парсинга Legenda PHP 4 02.10.2008 17:52
пример парсинга Stanislav Общие вопросы Delphi 4 14.01.2008 03:48