Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- TVersion = record
- Values: array of Integer;
- function Count: Integer;
- class operator implicit(aVersion: TVersion): String;
- class operator implicit(aVersion: String): TVersion;
- end;
- class operator TVersion.implicit(aVersion: TVersion): String;
- var
- X: Integer;
- begin
- Result:= '';
- for X := 0 to Length(aVersion.Values)-1 do begin
- if X > 0 then Result:= Result + '.';
- Result:= Result + IntToStr(aVersion.Values[X]);
- end;
- end;
- class operator TVersion.implicit(aVersion: String): TVersion;
- var
- S, T: String;
- I: Integer;
- begin
- S:= aVersion + '.';
- SetLength(Result.Values, 0);
- while Length(S) > 0 do begin
- I:= Pos('.', S);
- T:= Copy(S, 1, I-1);
- Delete(S, 1, I);
- SetLength(Result.Values, Length(Result.Values)+1);
- Result.Values[Length(Result.Values)-1]:= StrToIntDef(T, 0);
- end;
- end;
- function TVersion.Count: Integer;
- begin
- Result:= Length(Values);
- end;
- /////// Usage
- var
- V: TVersion;
- begin
- V:= '1.2.3.4';
- ShowMessage(IntToStr(V.Values[0])+'.'+IntToStr(V.Values[1]));
- V.Values[3]:= 400;
- ShowMessage(V);
- end;
Advertisement
Add Comment
Please, Sign In to add comment