![]() |
Zwei Versionen über „for“ vergleichen
Hallo ihr,
zur Zeit vergleiche ich zwei Versionen folgendermaßen:
Delphi-Quellcode:
Wie kann ich das nun in eine Schleife umwandeln, wenn man statt 8 separate Variablen zwei eindimensionale Array hat?
if NewMajor <= Major then
begin if NewMinor <= Minor then begin if NewRelease <= Release then begin if NewBuild <= Build then begin FNewVersion := false; end else FNewVersion := true; end else FNewVersion := true; end else FNewVersion := true; end else FNewVersion := true; Zur Zeit sieht es so aus:
Delphi-Quellcode:
Aber dort gibt es das Problem, dass das Ergebnis wahr wird, wenn die Versionen identisch sind. In diesem Falle, hätte ich aber gerne ein negatives Ergebnis (s.o.).
Result := true;
for i := 0 to High(oldVersion) do begin if newVersion[i] < oldVersion[i] then Result := false; end; MfG xZise |
Re: Zwei Versionen über „for“ vergleichen
Könnte das nicht so funktionieren (ungetestet)?
Delphi-Quellcode:
Result := false;
i := 0; while (i < Length(oldVersion)) and not Result do begin case Sign(newVersion[i] - oldVersion[i]) of -1: break; //newVersion ist älter -> raus hier 1: Result := true; //newVersion ist neuer end; inc(i); end; |
Re: Zwei Versionen über „for“ vergleiche
ich würde es so machen:
Delphi-Quellcode:
var
i: Integer; len: Integer; begin i := 0; len := length(old_version); while (i < len) and (old_version[i] = new_version[i]) do inc(i); result := (i = len); |
Re: Zwei Versionen über „for“ vergleichen
Und was machst Du, wenn die "alte" Version neuer ist?
|
Re: Zwei Versionen über „for“ vergleichen
warum packst du die Versionsnummern nicht in einen 32Bit-Int und schaust ob deine Versionsnummer kleiner oder gleich der anderen ist?
|
Re: Zwei Versionen über „for“ vergleichen
Dann dürfen die einzelnen Array-Elemente nicht größer als 255 sein (wird wohl auch so sein, aber ich wollte mal darauf hinweisen :mrgreen:).
|
Re: Zwei Versionen über „for“ vergleichen
Das Programm will ich sehen, das bei Version 255 ist :mrgreen:
|
Re: Zwei Versionen über „for“ vergleiche
ups, hab gedacht es geht nur um unterschiedlichkeit - wieder die hälfte ni gelesen.
|
Re: Zwei Versionen über „for“ vergleichen
Zitat:
|
Re: Zwei Versionen über „for“ vergleichen
Naja, letztendlich muss das der TE entscheiden ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz