Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   html auslesen (https://www.delphipraxis.net/200573-html-auslesen.html)

zeina 3. Mai 2019 11:56

html auslesen
 
Hallo

Ich habe zwei HTML-Seite.
die unterschied zwischen ihr
(<head data-locale="de" data-preferred-editor="id">)
und
(<head data-locale="de" data-preferred-editor="id" data-location="{&quot;minlon&quot;:5.865639,&quot;minla t&quot;:47.275776,&quot;maxlon&quot;:15.039889,&qu ot;maxlat&quot;:55.055637}">)
wie kann ich einen Befehle Schreiben um die Unterschied zu merken.
mein code funktioniert einwandfrei, ich will die Unterschied als meldung zeigen!!!

Delphi-Quellcode:
  ovElements := WebBrowser1.OleObject.Document.all;
    for i := 0 to ovElements.Length -1 do begin
      if (ovElements.item(i).classname = 'describe_location') then begin
        ovElements.item(i).Click;
      end;
    end;

hoika 3. Mai 2019 12:21

AW: html auslesen
 
Hallo,
da es Textdateien sind, hilft ein TextDiff, z.B. hier (ungetestet)
https://stackoverflow.com/questions/...nit-for-delphi

zeina 6. Mai 2019 08:55

AW: html auslesen
 
Zitat:

Zitat von hoika (Beitrag 1431517)
Hallo,
da es Textdateien sind, hilft ein TextDiff, z.B. hier (ungetestet)
https://stackoverflow.com/questions/...nit-for-delphi

das hat mir leider nichtt geholfen??

Dennis07 7. Mai 2019 14:41

AW: html auslesen
 
Zitat:

Zitat von zeina (Beitrag 1431623)
das hat mir leider nichtt geholfen??

Mag sein, aber kein Mensch blickt auch bei dir durch, was du eigentlich willst. Dein Text ergibt kaum einen Sinn und es wäre somit nur Gerate. Was ist deine Frage, was willst du?

Rudy Velthuis 7. Mai 2019 16:12

AW: html auslesen
 
Zitat:

Zitat von zeina (Beitrag 1431516)
Hallo

Ich habe zwei HTML-Seite.
die unterschied zwischen ihr
(<head data-locale="de" data-preferred-editor="id">)
und
(<head data-locale="de" data-preferred-editor="id" data-location="{&quot;minlon&quot;:5.865639,&quot;minla t&quot;:47.275776,&quot;maxlon&quot;:15.039889,&qu ot;maxlat&quot;:55.055637}">)

...

Delphi-Quellcode:
  ovElements := WebBrowser1.OleObject.Document.all;
    for i := 0 to ovElements.Length -1 do begin
      if (ovElements.item(i).classname = 'describe_location') then begin
        ovElements.item(i).Click;
      end;
    end;

Was hat der gezeigte Code mit dem zu tun, was du eigentlich machen willst? Ich nehme an, du willst das Attribut data-location vom head-tag lesen? Aber das nehme ich nur an, also vielleicht soltest du die Frage noch einmal verdeutlichen?

Moombas 9. Mai 2019 08:17

AW: html auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Naja, ich finde seine Frage nicht so schwer zu verstehen.

Sie hat zwei HTML-Dateien, die bis auf den angesprochenen String identisch sind.
Sie möchte diese Dateien über diese Strings auseinander halten können.

Im Grunde also alles was nach "id" steht dann als Meldung anzeigen (Ein Stringsplit mit Delimiter Leerzeichen und dann den Part [2] anzeigen lassen).

Nur als schnell dahin gezimmertes Beispiel (ohne die zwei scheinbar falschen Leerzeichen aus deinem Post im hinteren Teilstring!):

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, StrUtils;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
  function Split(text: string; delimiter: char; p: integer): string;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


//String Änderung (bei gleich bleibendem Anfang) ausgeben
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label3.caption := Split(Label2.Caption, ' ', 3);
  Label3.caption := LeftStr(Label3.caption, length(Label3.caption)-2);
end;

//String zerteilen
function TForm1.Split(text: string; delimiter: char; p: integer): string;
var
  stl: TStrings;
begin
  stl := TStringList.Create;
  try
    stl.delimiter := delimiter;
    stl.DelimitedText := text;
  finally
    result := stl.Strings[p];
    stl.free;
  end;
end;

end.
Oder ohne Stringsplit, mit einer Schleife:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  Long, Short : string;
begin
  Label3.Caption := '';
  if length(Label1.Caption) > (length(Label2.Caption)) then
  begin
    Long := Label1.Caption;
    Short:= Label2.Caption;
  end else
  begin
    Long := Label2.Caption;
    Short:= Label1.Caption;
  end;

  for I := 1 to length(Long) - 2 do
  begin
    if Short[i] <> Long[i] then
    begin
      Label3.Caption := Label3.Caption + Long[i];
    end;
  end;

end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz