Einzelnen Beitrag anzeigen

ringli

Registriert seit: 7. Okt 2004
508 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: else ifs werden übersprungen

  Alt 11. Sep 2007, 19:21
Ich stand letztens vor dem selben Problem und habe es so gelöst:
Delphi-Quellcode:
procedure VersionStrToInt(Version : String;
                          var Major, Minor, Release, Build : Integer);
var
  Len : Integer; // Länge der gesamten Versionsinfo
  p1, p2, p3 : Integer; // Position der einzelnen Punkte
begin
  // Länge des Versionsstrings ermitteln
  Len := Length(Version);
  //Position der einzelnen Punkte ermitteln
  p1 := PosEx('.', Version, 1);
  p2 := PosEx('.', Version, p1 + 1);
  p3 := PosEx('.', Version, p2 + 1);
  // Die einzelnen Strings in Zahlen umwandeln
  Major := StrToIntDef(Copy(Version, 1, p1 - 1 ), 0);
  Minor := StrToIntDef(Copy(Version, p1 + 1, p2 - p1 - 1), 0);
  Release := StrToIntDef(Copy(Version, p2 + 1, p3 - p2 - 1), 0);
  Build := StrToIntDef(Copy(Version, p3 + 1, Len ), 0);
end;

.
.
.

// Versionsinformationen der installierten Version ermitteln
VersionStrToInt(GetVersion, MajorAct, MinorAct, ReleaseAct, BuildAct);
VersionAct := StrToIntDef(Format(FormatString,
                          [MajorAct, MinorAct, ReleaseAct, BuildAct]), 0);

// Versionsinformation der Version auf dem Server ermitteln
VersionStrToInt(VER, MajorSrv, MinorSrv, ReleaseSrv, BuildSrv);
VersionSrv := StrToIntDef(Format(FormatString,
                          [MajorSrv, MinorSrv, ReleaseSrv, BuildSrv]), 0);

// Meldung wenn Version auf Server aktueller
if VersionSrv > VersionAct then
  begin
  end;
[EDIT]
Sorry hatte vergessen eine dazugehörige Prozedur zu posten...
  Mit Zitat antworten Zitat