Перейти к содержанию
Fire Monkey от А до Я
  • 0

Загрузка данных из Html таблицы


R.is

Вопрос

Добрый день после долгих попыток наконец то у меня хоть что то получилось.

Загружаю данные из html таблицы в StringGrid в таблице 2 строки и 4 столбца e6313fda730a3bb865805d3fcac9ed82.png

из них мне нужно вытащить текст, ссылку на него и картинку пока получается загрузить только текст.

procedure TForm1.Button1Click(Sender: TObject);
var i,j : Integer;
 Tab : Olevariant;
begin
  Tab := Webbrowser1.OleObject.document.all.tags('table').item(0);
  for I := 0 to (Tab.rows.length - 1) do
    begin
      for j := 0 to (Tab.Rows.Item(i).Cells.Length - 1) do
      begin
        StringGrid1.Cells[j, i] := Tab.Rows.Item(i).Cells.Item(j).InnerText;
         button2.Caption:= StringGrid1.Cells[0,0];
         listbox1.Items[i]:=StringGrid1.Cells[i,0];

      end;
    end;

end;

Прошу помочь с загрузкой картинки и ссылки на объявления может есть другой вариант?  потому что код для VCL а мне нужно под FMX

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

ОФФ: а вот если бы не хранили данные "на экране" прямо в stringgrid, не было бы проблем VCL или FMX...

 

а что сейчас приходит в 

Tab.Rows.Item(i).Cells.Item(j).InnerText;

?

Ссылка на комментарий
  • 0

спасибо попробовал теперь он загружает все что находится в теге 

<DIV class=specials><A class=special_photo_link href="http://www.somon.tj/aid/185592/" target=_blank><IMG title="Продам 5-ти комнатную квартиру на 102 мкр " onload="var img=new Image();img.src=this.src;if(img.height < 132){this.src=this.src.replace(/(\_s)/i,'_b')};this.style.top=((132-img.height*(180/img.width))/2)+'px';delete img;" style="TOP: -94px" border=0 alt="Продам 5-ти комнатную квартиру на 102 мкр " src="/photos/185592_1_s.JPG"> </A><A class=special_link href="http://www.somon.tj/aid/185592/" target=_blank>Продам 5-ти комнатную квартиру на 102 мкр </A>
<DIV class=special_price>83 $ </DIV></DIV>


Изменено пользователем R.is
Ссылка на комментарий
  • 0

ну вот отсюда и бери теперь

поиск подстроки в строке - функция PosEx(что_искать, где_искать, откуда_начать)

Изменено пользователем krapotkin
Ссылка на комментарий
  • 0
  • Модераторы

Как быть с OleObject-ми в FMX?

под Windows работать с Ole можно, а вот под другими платформами нет такого понятия

Ссылка на комментарий
  • 0

Вот и я об этом 

что использовать под Android?

uses ..., Xml.xmldom, Xml.XMLIntf, Xml.XMLDoc, Xml.adomxmldom, ...;
const
  csXMLVendor = 'ADOM XML v4';

type
  TCustomCommand = class(TPersistent)
  private
    ...
    fContentStream: TStream;
    fContentStr: string;
    ...
  public
    function GetXML(const AOwner: TComponent = nil): TXMLDocument;
    function GetXMLFromStream(const AOwner: TComponent = nil): TXMLDocument;
    ...
    property ContentStr: string read fContentStr write fContentStr;
    property ContentStream: TStream read fContentStream write fContentStream;
    ...
  end;


function TCustomCommand.GetXML(const AOwner: TComponent): TXMLDocument;
begin
  Result := TXMLDocument.Create(AOwner);
  Result.DOMVendor := GetDOMVendor(csXMLVendor);
  Result.LoadFromXML(ContentStr);
  Result.Active := True;
end;

function TCustomCommand.GetXMLFromStream(const AOwner: TComponent): TXMLDocument;
begin
  Result := TXMLDocument.Create(AOwner);
  Result.DOMVendor := GetDOMVendor(csXMLVendor);
  ContentStream.Position := 0;
  Result.LoadFromStream(ContentStream);
  Result.Active := True;
end;

я такой код использую для загрузки ответа в формате XML, полученного через TidHTTP..

работает корректно

из опыта использования данного метода под андроидом советую не оставлять входной параметр AOwner = nil

Изменено пользователем Nik
Ссылка на комментарий
  • 0

наверняка есть и другие варианты, но я старался использовать штатные возможности без привлечения сторонних компонентов.. и этот вариант кроссплатформенный - и под виндовс работает, и под андроидом..

Ссылка на комментарий
  • 0

Как быть с OleObject-ми в FMX?

 

 

Очень интересует этот вопрос. Кто знает, отпишитесь, как быть? может кто подскажет браузер с более широким функционалом? 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...