Einzelnen Beitrag anzeigen

WebUpdate System

Registriert seit: 11. Aug 2009
19 Beiträge
 
#5

Re: WebUpdate System (Gamma IV)

  Alt 19. Aug 2009, 22:25
Hallo Zusammen,

anbei die aktualisierte Version 20090819 des WUS. Folgendes hat sich geändert:

[+] Der Updater kann nun wieder unter D2006/TD kompiliert werden
[+] Die Versionsermittlung über das Erstellungsdatum wird nicht mehr automatisch unterstützt
[+] Statusanzeige für den Logger eingeführt

Das kompilieren, heißt kompilieren. Es wurde nicht darauf getestet, daß die Widestrings und Ansistrings auch zwischen den Umgebungen funktionieren. Vielleicht könnte dies jemand machen und für etwas D2006/TD kompatibilität sorgen. Der Composer (als .EXE) ist übrigens unter D2009 kompiliert und damit voll Unicodefähig.


Könnte jemand den untenstehenden Code bitte prüfen und verbessern? Er soll aus dem Applikationsdirektory und dem Pfad der neuen Datei den Zielordner ermitteln und zur Verfügung stellen. Beispiel:
AppDir = 'c:\programme\mycompany\mysoftware'
NewFile = 'bin\myNew.Exe'

soll zu
'c:\programme\mycompany\mysoftware\bin\myNew.Exe'

werden. Die Ermittlung des Updatepfads ist ja eine grundlegende Funktion, bitte mal zu prüfen und, falls Fehler, zu berichten und zu verbessern (und hier in diesen Thread posten) danke.

Delphi-Quellcode:
function CombineDirectory(aDirectory, aRelativePath: String): String;
var
  LD: integer;
begin
  result := '';
  while copy(aRelativePath, 1, 3) = '..\do
  begin
    aDirectory := ExcludeTrailingPathDelimiter(aDirectory);
    ld := LastDelimiter('\', aDirectory);
    Delete(aDirectory, ld+1, length(aDirectory) - ld);
    aRelativePath := copy(aRelativePath, 4, length(aRelativePath) - 3);
  end;

  aDirectory := ExcludeTrailingPathDelimiter(aDirectory);
  if copy(aRelativePath, 1, 2) = '.\then
    result := aDirectory + '\' + copy(aRelativePath, 3, length(aRelativePath) - 2)
  else
    if not (aRelativePath[1] in ['\', '.']) then
      result := IncludeTrailingPathDelimiter(aDirectory) + aRelativePath
    else
      if aRelativePath[1] = '\then
        result := aDirectory + aRelativePath;
end;

Der Updatelink, wurde im 1. Post angepaßt.
  Mit Zitat antworten Zitat