Wsw_CompareVersions

Top  Previous  Next

Sub Wsw_CompareVersions(Handle, ByRef sMemWeb, ByRef sMemLocal, ByRef sStatusMessage, ByRef iStatusCode)

 

Diese Funktion wird zum Vergleich der Web-Version einer Seite mit der lokal gespeicherten Version aufgerufen. Sie können den Seiteninhalt filtern und entscheiden, wann ein Bookmark ein Update melden soll. Zum Beispiel, wenn ein bestimmter Preis in der Web-Version kleiner als in der lokal gespeicherten Version ist.

 

Der Parameter iStatusCode ist ein numerischer Wert und gibt an, ob die Seite geändert wurde oder ob ein Fehler aufgetreten ist.

 

Parameter

 

Handle ... Bookmark-Handle.
sMemWeb ... String. Sourcecode der Online-Seite (Web-Version).
sMemLocal ... String. Sourcecode der lokalen Seite (lokal gespeicherte Version).
sStatusMessage ... String. Der zugewiesene Text wird in der Status-Spalte der Bookmarkliste angezeigt. Default-Wert ist ein leerer String.
iStatusCode ... Integer. Gibt an, ob die Seite geändert wurde oder ob ein Fehler aufgetreten ist. Default-Wert ist 0.

 

Gültige Werte von iStatusCode:

0 ...

OK, Seite ist nicht geändert.

Default-Wert, muss nicht explizit zugewiesen werden.

1 ...

OK, Seite wurde geändert.

Das Bookmark wird als geändert markiert.

2 ...

Fehler.

Wenn 2 zurückgegeben wird, dann wird die Prüfung dieses Bookmarks mit einem Fehler abgebrochen.

 

Beispiel:

Sub ExtractPrice(sMem, ByRef nPrice)

 

 Dim p, nLen

 

   nPrice = -1

   sMem = DeleteHtmlTags(sMem)

   ' Extract price without decimal places

   If FindRegex(sMem, "Price:\s*EUR\s*\d+,", p, nLen) Then

      sMem = ExtractDigits(Copy(sMem, p, nLen))

      nPrice = StrToIntDef(sMem, -1)

   End If

End Sub

 

'*******************************************************************************

 

Sub Wsw_CompareVersions(Handle, ByRef sMemWeb, ByRef sMemLocal, ByRef sStatusMessage, ByRef iStatusCode)

 

 Dim nPriceNew , nPriceOld, nPriceRef

 

   ' Define reference price (100 EUR)

   nPriceRef = 100

 

   ' Extract price from new/local version

   ExtractPrice(sMemWeb, nPriceNew)

   ExtractPrice(sMemLocal, nPriceOld) ' only needed to speed up several WSW routines

 

   ' Return only price - speed up several WSW routines, eg. "Test filter" dialog or "Analyze" functionality

   sMemWeb = IntToStr(nPriceNew)

   sMemLocal = IntToStr(nPriceOld)

 

   If nPriceNew = -Then

      iStatusCode = 2

      sStatusMessage = "Error extracting price"

   ElseIf (nPriceNew <> nPriceOld) And (nPriceNew <= nPriceRef) Then

      iStatusCode = 1

      sStatusMessage = "Price changed and lower than EUR " + IntToStr(nPriceNew)

   ElseIf (nPriceNew <> nPriceOld) And (nPriceNew > nPriceRef) Then

      iStatusCode = 0

      sStatusMessage = "Price too high"

   Else

      iStatusCode = 0

      sStatusMessage = "Price unchanged"

   End If

End Sub