Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.89
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
#1

Как парсить текст? - Delphi

10.09.2012, 14:30. Просмотров 5339. Ответов 20
Метки нет (Все метки)

Предположим на сайте есть <div class="time"></div> и оно типо выводит время.
Как мне это спарсить в label? Что бы тоже выводило время.
http://www.cyberforum.ru/delphi-beginners/thread38062.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2012, 14:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как парсить текст? (Delphi):

Как Парсить
Столкнулся таким вопросом как мне парсить все что есть в k вот код procedure...

Как парсить
Всем привет как парсить текст с сайта если его нету в html коде

Как парсить строку?
Доброго времени суток if ($pass == $row) die('id='. $row ....

Как парсить правильно?
Всем привет, у меня есть страница со списком монет у игроков, в Edit1.Text...

Как парсить Json?
Нужно из строки ...

20
Jason
397 / 397 / 54
Регистрация: 25.12.2011
Сообщений: 903
10.09.2012, 14:51 #2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function GetPars(STP:String; FindSplit:Char; IndexSTR:Integer):String; {Private Declarations}
 
function TForm1.GetPars(STP:String; FindSplit:Char; IndexSTR:Integer):String; {Function} 
var              SL          :TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Delimiter     := FindSplit;
    SL.DelimitedText := STP;
    GetPars := PChar(SL.Strings[IndexSTR]);
  finally
    SL.Free;
  end;
end;
0
antikiler_
1080 / 566 / 79
Регистрация: 07.04.2011
Сообщений: 971
Записей в блоге: 2
10.09.2012, 15:02 #3
Глянь это
http://www.cyberforum.ru/delphi/thread646491.html
0
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
10.09.2012, 17:54  [ТС] #4
Цитата Сообщение от antikiler_ Посмотреть сообщение
Не обязательно тамер, или время.
Мне вообще нужно вытащить онлайн. Я просто привел такой пример.

Добавлено через 44 секунды
Цитата Сообщение от Hennasy Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function GetPars(STP:String; FindSplit:Char; IndexSTR:Integer):String; {Private Declarations}
 
function TForm1.GetPars(STP:String; FindSplit:Char; IndexSTR:Integer):String; {Function} 
var              SL          :TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Delimiter     := FindSplit;
    SL.DelimitedText := STP;
    GetPars := PChar(SL.Strings[IndexSTR]);
  finally
    SL.Free;
  end;
end;
Не понимаю как мне это может помочь?!

Добавлено через 2 часа 29 минут
Что? Не кто помочь не может?
0
Nutserus
Нарушитель
207 / 166 / 24
Регистрация: 24.04.2012
Сообщений: 590
10.09.2012, 18:08 #5
Подобный вопрос задают здесь каждую неделю, попробуй воспользоваться поиском.
0
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
10.09.2012, 18:09  [ТС] #6
Цитата Сообщение от Nutserus Посмотреть сообщение
Подобный вопрос задают здесь каждую неделю, попробуй воспользоваться поиском.
Именно то что мне нужно, я не нашел
0
Nutserus
Нарушитель
207 / 166 / 24
Регистрация: 24.04.2012
Сообщений: 590
10.09.2012, 18:38 #7
всего 4 дня назад писал подобное...

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function FindID(strB,strE,str:string):string;
var
  b,e:integer;
begin
  b:=pos(strb,str)+Length(strb);
  e:=pos(strE,str);
  if (b=Length(strb))or(e=0) then
    Result:=''
  else
    Result:=copy(str,b,e-b);
end;
 
begin
  Label1.Caption:=FindID('<div class="time">','</div>',IdHTTP.Get('http://...'));
end;
0
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
10.09.2012, 19:17  [ТС] #8
Цитата Сообщение от Nutserus Посмотреть сообщение
всего 4 дня назад писал подобное...

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function FindID(strB,strE,str:string):string;
var
  b,e:integer;
begin
  b:=pos(strb,str)+Length(strb);
  e:=pos(strE,str);
  if (b=Length(strb))or(e=0) then
    Result:=''
  else
    Result:=copy(str,b,e-b);
end;
 
begin
  Label1.Caption:=FindID('<div class="time">','</div>',IdHTTP.Get('http://...'));
end;
Сделал, написал:
Delphi
1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:=FindID('<span class="white">','</div>',IdHTTP1.Get('http://spaces.ru'));
end;
Нечего не выводит а label очищается.
0
HanDi
892 / 339 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
10.09.2012, 22:16 #9
http://www.cyberforum.ru/delphi-begi...ml#post3362530
0
Nutserus
Нарушитель
207 / 166 / 24
Регистрация: 24.04.2012
Сообщений: 590
10.09.2012, 23:19 #10
Цитата Сообщение от Cresis Посмотреть сообщение
Нечего не выводит а label очищается.
Ну для того чтобы работала, еще голова нужна.
Delphi
1
Label1.Caption:=FindID('</a> <span class="white">','</span>',IdHTTP1.Get('http://spaces.ru'));
Label1.Caption=(+12875 гостей)
0
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
10.09.2012, 23:34  [ТС] #11
Цитата Сообщение от Nutserus Посмотреть сообщение
Ну для того чтобы работала, еще голова нужна.
Delphi
1
Label1.Caption:=FindID('</a> <span class="white">','</span>',IdHTTP1.Get('http://spaces.ru'));
Label1.Caption=(+12875 гостей)
Хм, почему то ввел твой код, и все ровно результата 0
0
Nutserus
Нарушитель
207 / 166 / 24
Регистрация: 24.04.2012
Сообщений: 590
10.09.2012, 23:43 #12
Переписал немного процедуру, для понятливости:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function FindID(strB,strE,str:string):string;
var
  b,e:integer;
begin
  b:=pos(strb,str);
  if b>0 then
  begin
    delete(str,1,b+Length(strb)-1);
    e:=pos(strE,str);
    if e>0 then
      Result:=copy(str,1,e-1)
    else
      Result:='Тег '''+strE+''' не найден';
  end
  else
    Result:='Тег '''+strB+''' не найден';
end;
0
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
10.09.2012, 23:52  [ТС] #13
Цитата Сообщение от Nutserus Посмотреть сообщение
Переписал немного процедуру, для понятливости:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function FindID(strB,strE,str:string):string;
var
  b,e:integer;
begin
  b:=pos(strb,str);
  if b>0 then
  begin
    delete(str,1,b+Length(strb)-1);
    e:=pos(strE,str);
    if e>0 then
      Result:=copy(str,1,e-1)
    else
      Result:='Тег '''+strE+''' не найден';
  end
  else
    Result:='Тег '''+strB+''' не найден';
end;
Почему то вместо русского текста выводит крказябры
0
HanDi
892 / 339 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
11.09.2012, 00:08 #14
http://www.cyberforum.ru/delphi-begi...ml#post3362530

Обрати внимание.
1
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
11.09.2012, 00:17  [ТС] #15
Цитата Сообщение от HanDi Посмотреть сообщение
Спасибо попробую

Добавлено через 6 минут
Цитата Сообщение от HanDi Посмотреть сообщение
Воспользовался твоим примером, почему то выводит краказябры вместо русского текста
0
Nutserus
Нарушитель
207 / 166 / 24
Регистрация: 24.04.2012
Сообщений: 590
11.09.2012, 00:20 #16
Остается один выход - учи алфавит кракозябров.
0
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
11.09.2012, 00:22  [ТС] #17
Цитата Сообщение от Nutserus Посмотреть сообщение
Остается один выход - учи алфавит кракозябров.
Я серьезно. Но да ладно, возможно это у меня делфи тупит или система...
Вопрос:

<span class="white">Сейчас онлайн:</span> <a href="http://spaces.ru/users/?sid=" style="color:#fafbaf;">25066</a> <span class="white">(+8664 гостей)</span>

Делаю типо 2 этих тега и не выводит онлайн
0
Nutserus
Нарушитель
207 / 166 / 24
Регистрация: 24.04.2012
Сообщений: 590
11.09.2012, 00:26 #18
'"color:#fafbaf;">','</a> <span class="white">'

Так выведет
1
Cresis
-27 / 0 / 1
Регистрация: 17.03.2012
Сообщений: 72
11.09.2012, 00:30  [ТС] #19
Цитата Сообщение от Nutserus Посмотреть сообщение
'"color:#fafbaf;">','</a> <span class="white">'

Так выведет
Понял, спасибо
0
korneevy
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 1
08.10.2016, 16:26 #20
А как парсить текст в Delphi XE7
0
08.10.2016, 16:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2016, 16:26
Привет! Вот еще темы с решениями:

Как парсить Токен
хочу авторизоватся на сайте http://websurf.ru/ (не реклама)...

Как парсить JSON в D2010
Итак, что имеем: Мои кривые руки Delphi 2010 Компонент DBXJSON Response,...

Как парсить страницы сайтов
Научите парсить какой нибудь кусочек сайта...а то я кучу мануалов перелазил......

Как парсить порядок значений с сайта
В общем на сайте такой html код: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru