HTML Files Vergleichen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

HTML Files Vergleichen

Beitrag von Pelagio »

Hallo,

ich habe leider nicht viel am Hut mit HTML und deswegen tue ich mich schwer mit diesbezüglichen Dateien zu arbeiten.
Jetzt ist es aber so, dass ich zwei HTML Dateien miteinander vergleichen möchte und auch anzeigen.
Ich habe mir gedacht das es gut wäre die Daten, die Tabellen mäßig aufgebaut sind, in eine Struktur-Liste zu lesen
und in einem ListIconGadget darzustellen. Ich komme aber auf keinen grünen Zweig um die Daten, einfachst, in die Liste zu lesen.
Alle Ideen die ich habe, sind mir einfach zu umständlich :iamwithstupid: .

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=windows-1252">
<META NAME="Generator" CONTENT="Test">
<style>
br {mso-data-placement:same-cell;}
</style>
<TITLE>Parameterliste s8.zp2</TITLE>
</HEAD><BODY>
<H1>Parameterliste s8.zp2</H1>
<H2>Zeitpunkt des Exports: 15.01.2020 08:08:11</H2>
<H3>Probenzugehörigkeit: Nächste Probe (Probe 1)</H3>
<H3>Bei aktivierbaren Parametern wird im Status angegeben, ob der Parameter aktiviert oder nicht aktiviert ist.</H3>
<TABLE BORDER="1">
<TR VALIGN=top><TH ALIGN=left>Dialog</TH><TH ALIGN=left>Parameter</TH><TH ALIGN=left>ID</TH><TH ALIGN=left>Typ</TH><TH ALIGN=left>Wert</TH><TH ALIGN=left>Zuordnung</TH><TH ALIGN=left>Status</TH><TH ALIGN=left>Sichtbarkeit</TH></TR>
<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Eingaben nach Prüfung</TD><TD ALIGN=left>1733</TD><TD ALIGN=left>Auswahl</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>&nbsp;</TD></TR>
<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Startposition nach Prüfung einstellen</TD><TD ALIGN=left>1050</TD><TD ALIGN=left>Ja/Nein</TD><TD ALIGN=left>Nein</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>&nbsp;</TD></TR>
<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Probe entlasten</TD><TD ALIGN=left>1049</TD><TD ALIGN=left>Ja/Nein</TD><TD ALIGN=left>Nein</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>&nbsp;</TD></TR>
<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Max. zulässige Kraft am Prüfungsende</TD><TD ALIGN=left>1051</TD><TD ALIGN=left>numerischer Wert</TD><TD ALIGN=left>Standardkraft: 500 N</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>Nicht sichtbar</TD></TR>
<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Geschwindigkeit Entlastung</TD><TD ALIGN=left>1052</TD><TD ALIGN=left>numerischer Wert</TD><TD ALIGN=left>lagegeregelt: 10 mm/min</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>Nicht sichtbar</TD></TR>
<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Nach Entlastung der Probe die Startposition erst nach Bestätigung einstellen</TD><TD ALIGN=left>1630</TD><TD ALIGN=left>Ja/Nein</TD><TD ALIGN=left>Ja</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>Nicht sichtbar</TD></TR>
</TABLE>
</BODY>
</HTML>
Eventuell kann mir jemand von Euch einen Anstoß geben.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS]. :allright:
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: HTML Files Vergleichen

Beitrag von Kiffi »

Eine Möglichkeit:

Code: Alles auswählen

EnableExplicit

Define XML.s

XML = "<TABLE BORDER='1'>" + #CRLF$ +
      "<TR VALIGN=top><TH ALIGN=left>Dialog</TH><TH ALIGN=left>Parameter</TH><TH ALIGN=left>ID</TH><TH ALIGN=left>Typ</TH><TH ALIGN=left>Wert</TH><TH ALIGN=left>Zuordnung</TH><TH ALIGN=left>Status</TH><TH ALIGN=left>Sichtbarkeit</TH></TR>" + #CRLF$ +
      "<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Eingaben nach Prüfung</TD><TD ALIGN=left>1733</TD><TD ALIGN=left>Auswahl</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>&nbsp;</TD></TR>" + #CRLF$ +
      "<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Startposition nach Prüfung einstellen</TD><TD ALIGN=left>1050</TD><TD ALIGN=left>Ja/Nein</TD><TD ALIGN=left>Nein</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>&nbsp;</TD></TR>" + #CRLF$ +
      "<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Probe entlasten</TD><TD ALIGN=left>1049</TD><TD ALIGN=left>Ja/Nein</TD><TD ALIGN=left>Nein</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>&nbsp;</TD></TR>" + #CRLF$ +
      "<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Max. zulässige Kraft am Prüfungsende</TD><TD ALIGN=left>1051</TD><TD ALIGN=left>numerischer Wert</TD><TD ALIGN=left>Standardkraft: 500 N</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>Nicht sichtbar</TD></TR>" + #CRLF$ +
      "<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Geschwindigkeit Entlastung</TD><TD ALIGN=left>1052</TD><TD ALIGN=left>numerischer Wert</TD><TD ALIGN=left>lagegeregelt: 10 mm/min</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>Nicht sichtbar</TD></TR>" + #CRLF$ +
      "<TR VALIGN=top><TD ALIGN=left>Aktionen nach Prüfung</TD><TD ALIGN=left>Nach Entlastung der Probe die Startposition erst nach Bestätigung einstellen</TD><TD ALIGN=left>1630</TD><TD ALIGN=left>Ja/Nein</TD><TD ALIGN=left>Ja</TD><TD ALIGN=left>Serienebene</TD><TD ALIGN=left>&nbsp;</TD><TD ALIGN=left>Nicht sichtbar</TD></TR>" + #CRLF$ +
      "</TABLE>"

; Krempel entfernen:
XML = RemoveString(XML, " BORDER='1'")
XML = RemoveString(XML, " VALIGN=top")
XML = RemoveString(XML, " ALIGN=left")
XML = RemoveString(XML, "&nbsp;")

Define TR, TD

If ParseXML(0, XML) And XMLStatus(0) = #PB_XML_Success
  TR = XMLNodeFromPath(MainXMLNode(0), "TR") ; TableRow
  While TR
    TD = XMLNodeFromPath(TR, "TD") ; TableData
    While TD
      Debug GetXMLNodeText(TD) ; TD-Text ausgeben lassen
      TD = NextXMLNode(TD)
    Wend
    TR = NextXMLNode(TR)
  Wend  
  FreeXML(0)
Else
  Debug XMLError(0)
EndIf
Grüße ... Peter
Hygge
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: HTML Files Vergleichen

Beitrag von Pelagio »

Danke Kiffi :praise:

es hat zwar etwas gedauert bis ich den Sinn hinter deinem Beispiel gefunden hatte,
aber zu guter Letzt hat es mir geholfen und ich konnte das Programm erstellen. :bounce:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS]. :allright:
Antworten