AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Webpages vergleichen und Änderungen ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Webpages vergleichen und Änderungen ermitteln

Ein Thema von softtouch · begonnen am 17. Nov 2021 · letzter Beitrag vom 19. Nov 2021
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.598 Beiträge
 
Delphi 7 Professional
 
#5

AW: Webpages vergleichen und Änderungen ermitteln

  Alt 17. Nov 2021, 19:40
HTML ist ein formatfreier Text.

Das trennen von Tags und Text per Zeilenbrüchen ändert da schonmal nix. Auch das entfernen der Zeilenumbrüche im Text und deren Ersetzung durch Leerzeichen nicht, da die Zeilenumbrüche vom Browser sowieso ignoriert werden.

Dann werden die Tag-Zeilen eben nicht entfernt, sondern nur die Zeilen zwischen den Tags verglichen. Das sollte mit zwei Stringlisten zu realisieren sein.

Die dann zeilenweise durchgehen, Tagzeilen ignorieren, Textzeilen vergleichen. Sind sie gleich, ok, ansonsten halt weiter prüfen.

Dazu nimmt man dann zwei weitere Stringlisten, die jeweils den Inhalt einer Zeile aufnehmen und zwar als DelimitedText. Dann hat man zwei Listen, mit jeweils einem Wort in einer Zeile. Die kann man dann wiederum zeilenweise vergleichen. Gibt's da 'nen Unterschied, sucht man sich das entsprechend Wort in der ursprünglichen Textzeile und ersetzt es z. B. so in der Art:

TextZeile := AnsiReplaceText(Textzeile,'WortDasAndersIst','<span style="color:yellow">' + 'WortDasAndersIst' + '</span>');

Das sieht erstmal irgendwie ein bisserl unübersichtlich aus, dürfte aber recht einfach zu realisieren sein.
Und gibt es mehrere unterschiedliche Wörter in einer Zeile hintereinander, dann wird halt jedes Wort davon farblich hervorgehoben, ja und? Hat der Browser eben ein bisserl mehr Arbeit, aber man spart sich den Aufwand, irgendwelche Textbereiche von "Beginn der Änderung" bis "Ende der Änderung" zu suchen. Das würde dann eher sportlich

Oder noch "brutaler".

Wie gesagt: Der Text ist formatfrei:

Daraus können wir schließen, dass auch jedes einzelne Wort in einer Zeile stehen darf.

Tags, wie gehabt in eigene Zeile "pappen".

In Textzeilen wird grundsätzlich jedes Leerzeichen durch einen Zeilenumbruch ersetzt.

Dann reichen zwei Stringlisten, die zeilenweise verglichen werden können. Unterschiedliche Zeilen werden mit Span-Tags (o. ä.) zur Farbhervorhebung ergänzt. Hier könnten dann aber auch bekannte DIFF-Tools helfen. Wenn nicht, muss man eben bei eingefügten oder entfernten Wörtern die Stringlisten selbst synchronisieren.

Geändert von Delphi.Narium (17. Nov 2021 um 19:49 Uhr) Grund: Schreibfehler ...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz