Thema: html auslesen

Einzelnen Beitrag anzeigen

Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#6

AW: html auslesen

  Alt 9. Mai 2019, 08:17
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.
Miniaturansicht angehängter Grafiken
unbenannt.png  
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 9. Mai 2019 um 08:31 Uhr)
  Mit Zitat antworten Zitat