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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 22:12   #1
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию copy pos

Здравствуйте подскажите пожалуйста что не так я тут делаю

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  b,k: Integer ;
 s,b1 : string ;

begin
 k:=0;
 GetDir(0,s);                   //ïîëó÷èòü òåêóùþþ äåðåêòîðèþ
 Memo1.Text:=IdHTTP1.Get('http://meteo.ua/150/harkov/10-days');
 Memo1.Lines.SaveToFile(s+'\home.htm');
 // Memo1.Text:=Utf8ToAnsi(Memo1.Text);
 //Memo2.Text :=copy(Memo1.Text,pos('class="wwt_cont">',Memo1.Text),  ( pos('<span class="lp_bg">',Memo1.Text))-pos('class="wwt_cont">',Memo1.Text));
 //Memo2.Lines.SaveToFile(s+'\obzats.htm');

  for b:=0 to memo1.Lines.Count-1 do
    if pos('class="wwt_cont">',Memo1.Lines[b])<>0 then
     begin
        inc(k);
        b1:=(copy(Memo1.Lines[b],    pos('class="wwt_cont">',Memo1.Lines[b]),  ( pos('<!-- wwc_bg -->',Memo1.Lines[b]))-pos('class="wwt_cont">',Memo1.Lines[b])));

       Memo3.Lines.Add(b1);
       Edit1.Text:=IntToStr(k) ;
      end;
end;
в Edit показывает 10 вхождений как и должно быть а в Memo не одного не выводит
Gudzik11 вне форума Ответить с цитированием
Старый 21.05.2012, 22:53   #2
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Сейчас сам работаю над обработкой текста из мемо, точнее уже закончил, проблема может быть в том что та подстркоа которую вы ишите, может находится на нескольких строках, попробуйте подругому, копировать и делать pos не из строки а из всего текста, если это возможно... а вообше неплохо бы было увидеть текст который вы обрабатываете и скриншот того места в мемо текст которого вы обрабатываете
Dozent вне форума Ответить с цитированием
Старый 21.05.2012, 23:25   #3
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию

Скриншоты великоваты

вот сам документ:
вернее там их два, obzats это то что нужно получить .
то есть текст разрезать на 10 таких obzats
Вложения
Тип файла: rar Обработкапогоды.rar (36.4 Кб, 9 просмотров)
Gudzik11 вне форума Ответить с цитированием
Старый 21.05.2012, 23:57   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

мдя! А вы измените код вот так
Код:
if (pos('class="wwt_cont">',Memo1.Lines[b])<>0) and 
  (pos('<!-- wwc_bg -->',Memo1.Lines[b])<> 0) then
     begin
        inc(k);
        b1:=(copy(Memo1.Lines[b],    pos('class="wwt_cont">',Memo1.Lines[b]),  ( pos('<!-- wwc_bg -->',Memo1.Lines[b]))-pos('class="wwt_cont">',Memo1.Lines[b])));

       Memo3.Lines.Add(b1);
       Edit1.Text:=IntToStr(k) ;
      end;
и посмотрите теперь чему к равно будет!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 22.05.2012, 08:48   #5
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
мдя! А вы измените код вот так

и посмотрите теперь чему к равно будет!
Так не находит не одного
Gudzik11 вне форума Ответить с цитированием
Старый 22.05.2012, 08:57   #6
Gudzik11
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 138
По умолчанию

А по отдельности все к=10.
Получается так что если копирование происходит на одной линии то всё работает.

к примеру такой кусок текста

Код HTML:
<a href="#today" class="wwt_cont">
                                                                    <div class="wwt_day">Вт</div>
                                                                    <div class="wwt_num">22</div>
                                                                    <div class="wwt_mon">Мая</div>
                                                                                                                                        <div class="wwt_img vl_parent"><span class="vl_child"><span><img title="Ясно" src="/themes/default/images/for_icn/small/d000.png" alt="/themes/default/images/for_icn/big/d000.gif"></span></span><span class="vl_help"></span></div>
                                                                                                                                        <div class="wwt_tmps">
                                                                        <span class="wwt_tmp wwt_min">
                                                                            <span class="wt_lim">мин.</span>
                                                                                                                                                            <span>+17&deg;</span>
                                                                                                                                                    </span>
                                                                        <span class="wwt_tmp wwt_max">
                                                                            <span class="wt_lim">макс.</span>
если беру начало вхождения <div class="wwt_day"> и конец </div> то всё выводит , но если конец изменить на <div class="wwt_num"> то нечего не выводит

Последний раз редактировалось Gudzik11; 22.05.2012 в 09:32.
Gudzik11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pos copy s1s1s1 Общие вопросы Delphi 13 22.04.2012 21:41
Copy и pos Zloy_Doomer Общие вопросы Delphi 8 03.07.2011 06:13
copy or pos(делфи) lama90 Помощь студентам 1 31.05.2011 18:17
pos copy delete Aleksandr69 PHP 7 09.05.2011 18:37
pos и copy zotox Помощь студентам 1 23.10.2008 21:13