Servuz,
Arbeite für ein neues Projekt von mir erstmals mit Typen und sonstigen Krimskrams, wo ich mich erst richtig einarbeiten muss. Für eine Auto-Update Routine habe ich mir bereits einige Komponenten angeschaut aber keine gefunden, die für mein Projekt das Aufweist, was ich suche. Darum hab ich mich dranngemacht eine eigene Update Routine zu schreiben.
Im Grunde soll es was relativ Simples sein, was aber meinen Anforderungen entsprechen würde.
Es gibt eine XML Datei im Internet, die mit seinem Inhalt auf die einzelnen Dateien hinweist (ink. Versionsnummer)
Eine 2. XML befindet sich im Programmordner.
Beide XML Dateien werden eingelesen und in das TWebUpdateFile (Array) geschrieben. Klappt bis hierhin alles super.
Folgender Code sollte selbsterklärend sein:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| type TUpdateFile = record Filename : string; Version : double; end; TWebUpdateFile = Array of TUpdateFile;
type TStartForm = class(TForm) - - - procedure StartUpdate(NewUpdates, OldUpdates: TWebUpdateFile); end;
var UpdateFile, UpdateFileOld : TWebUpdateFile;
procedure TStartForm.StartUpdate(NewUpdates, OldUpdates: TWebUpdateFile); begin end; |
Jetzt stehe ich aber vor dem Problem, das in der Procedure "StartUpdate" beide Typen verglichen werden sollen.
Und zwar, so:
1. - Ist Filename in Neu auch in Alt -> Vergleiche Version <else> Lade diese File herunter.
2. - Ist Version von gleichen Filename ungleich -> Lade neue File herunter.
Könnt ihr mir ein Ansatz geben, wie man das am elegantesten Lösen kann?
Zuzüglich muss ja auch darauf geachtet werden, das die Liste erst weiter abgearbeitet werden darf, wenn die Update-Datei erfolgreich heruntergeladen wurde.
LG,
Terra