28 сент. 2012 г.

Compare file version strings

На всякий случай код функции сравнения строк с номерами версий файлов. А то в интернете находятся только какие-то монстры.
function CompareVersionStrings(const V1, 
  V2: String): Integer;

  function ExtractInt(const V: String; 
    var B: Integer): Integer;
  var
    E: Integer;
  begin
    E := B + 1;
    while (B <= Length(V)) and (E <= Length(V)) 
      and (V[E] <> '.') do Inc(E);
    Result := StrToIntDef(Copy(V, B, E - B), 0);
    B := E + 1;
  end;

var
  B1, B2: Integer;
begin
  B1 := 1; B2 := 1;
  repeat
    Result := ExtractInt(V1, B1) - ExtractInt(V2, B2);
  until (Result <> 0) or 
    ((B1 > Length(V1)) and (B2 > Length(V2)));
end;

Комментариев нет:

Отправить комментарий