- Delphi 2007, , Format() , . ( ) , ; "" . "AsAnsiString": , 1) , 2), , , .. TShortStringRec. AsAnsiString, , SetAsAnsiString ( AsAnsiString )? . , , .
string [], . , , AnsiChars ShortString, , UnicodeString, char [], :
type
_ShortString3 = string[3]:
ShortString3 = record
private
FData: _ShortString3;
function GetAnsiChar(Index: Integer): AnsiChar;
procedure PutAnsiChar(Index: Integer; const Value: AnsiChar);
public
class operator Implicit(const A: string): ShortString3;
class operator Implicit(const A: ShortString3): string;
class operator Equal(const A: ShortString3; B: AnsiChar): Boolean;
class operator NotEqual(const A: ShortString3; B: AnsiChar): Boolean;
class operator Equal(const A: ShortString3; B: ShortString3): Boolean;
class operator NotEqual(const A: ShortString3; B: ShortString3): Boolean;
class operator Add(const A: ShortString3; B: ShortString3): string;
class operator Add(const A: ShortString3; B: AnsiChar): string;
class operator Add(const A: ShortString3; B: string): string;
property AnsiChars[Index: Integer]: AnsiChar read GetAnsiChar write PutAnsiChar; default;
end;
FWIW :
{ShortString3}
function ShortString3.GetAnsiChar(Index: Integer): AnsiChar;
begin
Result := FData[Index];
end;
procedure ShortString3.PutAnsiChar(Index: Integer; const Value: AnsiChar);
begin
FData[Index] := Value;
end;
class operator ShortString3.Implicit(const A: string): ShortString3;
begin
Result.FData := _ShortString3(A);
end;
class operator ShortString3.Implicit(const A: ShortString3): string;
begin
Result := string(A.FData);
end;
class operator ShortString3.Equal(const A: ShortString3; B: AnsiChar): Boolean;
begin
Result := A.FData = B;
end;
class operator ShortString3.NotEqual(const A: ShortString3; B: AnsiChar): Boolean;
begin
Result := A.FData <> B;
end;
class operator ShortString3.Equal(const A: ShortString3; B: ShortString3): Boolean;
begin
Result := A.FData = B.FData;
end;
class operator ShortString3.NotEqual(const A: ShortString3; B: ShortString3): Boolean;
begin
Result := A.FData <> B.FData;
end;
class operator ShortString3.Add(const A: ShortString3; B: ShortString3): string;
begin
Result := string(A.FData + B.FData);
end;
class operator ShortString3.Add(const A: ShortString3; B: AnsiChar): string;
begin
Result := string(A.FData + B);
end;
class operator ShortString3.Add(const A: ShortString3; B: string): string;
begin
Result := string(A.FData) + B;
end;
, , 1 ShortString . ( , ShortString StringTypes , .) , ShortString, .