djjd47130

TVersion Record Helper

Feb 25th, 2014
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.12 KB | None | 0 0
  1. type
  2.   TVersion = record
  3.     Values: array of Integer;
  4.     function Count: Integer;
  5.     class operator implicit(aVersion: TVersion): String;
  6.     class operator implicit(aVersion: String): TVersion;
  7.   end;
  8.  
  9.  
  10. class operator TVersion.implicit(aVersion: TVersion): String;
  11. var
  12.   X: Integer;
  13. begin
  14.   Result:= '';
  15.   for X := 0 to Length(aVersion.Values)-1 do begin
  16.     if X > 0 then Result:= Result + '.';
  17.     Result:= Result + IntToStr(aVersion.Values[X]);
  18.   end;
  19. end;
  20.  
  21. class operator TVersion.implicit(aVersion: String): TVersion;
  22. var
  23.   S, T: String;
  24.   I: Integer;
  25. begin
  26.   S:= aVersion + '.';
  27.   SetLength(Result.Values, 0);
  28.   while Length(S) > 0 do begin
  29.     I:= Pos('.', S);
  30.     T:= Copy(S, 1, I-1);
  31.     Delete(S, 1, I);
  32.     SetLength(Result.Values, Length(Result.Values)+1);
  33.     Result.Values[Length(Result.Values)-1]:= StrToIntDef(T, 0);
  34.   end;
  35. end;
  36.  
  37. function TVersion.Count: Integer;
  38. begin
  39.   Result:= Length(Values);
  40. end;
  41.  
  42.  
  43.  
  44. /////// Usage
  45.  
  46.  
  47. var
  48.   V: TVersion;
  49. begin
  50.   V:= '1.2.3.4';
  51.   ShowMessage(IntToStr(V.Values[0])+'.'+IntToStr(V.Values[1]));
  52.   V.Values[3]:= 400;
  53.   ShowMessage(V);
  54. end;
Advertisement
Add Comment
Please, Sign In to add comment