stringversion.iss 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. [Code]
  2. function stringtoversion(var temp: String): Integer;
  3. var
  4. part: String;
  5. pos1: Integer;
  6. begin
  7. if (Length(temp) = 0) then begin
  8. Result := -1;
  9. Exit;
  10. end;
  11. pos1 := Pos('.', temp);
  12. if (pos1 = 0) then begin
  13. Result := StrToInt(temp);
  14. temp := '';
  15. end else begin
  16. part := Copy(temp, 1, pos1 - 1);
  17. temp := Copy(temp, pos1 + 1, Length(temp));
  18. Result := StrToInt(part);
  19. end;
  20. end;
  21. function compareinnerversion(var x, y: String): Integer;
  22. var
  23. num1, num2: Integer;
  24. begin
  25. num1 := stringtoversion(x);
  26. num2 := stringtoversion(y);
  27. if (num1 = -1) and (num2 = -1) then begin
  28. Result := 0;
  29. Exit;
  30. end;
  31. if (num1 < 0) then begin
  32. num1 := 0;
  33. end;
  34. if (num2 < 0) then begin
  35. num2 := 0;
  36. end;
  37. if (num1 < num2) then begin
  38. Result := -1;
  39. end else if (num1 > num2) then begin
  40. Result := 1;
  41. end else begin
  42. Result := compareinnerversion(x, y);
  43. end;
  44. end;
  45. function compareversion(versionA, versionB: String): Integer;
  46. var
  47. temp1, temp2: String;
  48. begin
  49. temp1 := versionA;
  50. temp2 := versionB;
  51. Result := compareinnerversion(temp1, temp2);
  52. end;