Strings
Demonstrate many ways to use strings.
{$assertions on} procedure Test_TruncString; const _a: string[3] = 'haihai'; _b: string[5] = 'baibai'; res: string[9] = _a + ' ' + _b; var a: string[3]; b: string[5]; begin a := _a; b := _b; Assert(Length(a) = 3, 'Length(a)'); Assert(Length(b) = 5, 'Length(b)'); Assert(a[1] = 'h', 'a[1]'); Assert(a[1] + b[2] + a[3] = a, 'a[1] + b[2] + a[3]'); Assert(a = 'hai', 'a <> hai'); Assert(b = 'baiba', 'b <> bai'); Assert(a = a, 'a <> a'); Assert(a <> b, 'a = b'); Assert(a + b = 'haibaiba', 'a + b'); Assert(b + a = 'baibahai', 'b + a'); Assert(a + ' ' + b = res, 'res'); a := b; Assert(a = 'bai', 'a <> _b'); b := 'kai' + a; Assert(b = 'kaiba', 'b <> kaiba'); end; procedure Test_ShortString; const _a: shortstring = 'hai'; _b: shortstring = 'bai'; res: shortstring = _a + ' ' + _b; var a, b: shortstring; begin a := _a; b := _b; Assert(Length(a) = 3, 'Length(a)'); Assert(Length(b) = 3, 'Length(b)'); Assert(a[1] = 'h', 'a[1]'); Assert(a[1] + b[2] + a[3] = a, 'a[1] + b[2] + a[3]'); Assert(a = 'hai', 'a <> hai'); Assert(b = 'bai', 'b <> bai'); Assert(a = a, 'a <> a'); Assert(a <> b, 'a = b'); Assert(a + b = 'haibai', 'a + b'); Assert(b + a = 'baihai', 'b + a'); Assert(a + ' ' + b = res, 'res'); end; procedure Test_AnsiString; const _a: ansistring = 'hai'; _b: ansistring = 'bai'; res: ansistring = _a + ' ' + _b; var a, b: ansistring; begin a := _a; b := _b; Assert(Length(a) = 3, 'Length(a)'); Assert(Length(b) = 3, 'Length(b)'); Assert(a[1] = 'h', 'a[1]'); Assert(a[1] + b[2] + a[3] = a, 'a[1] + b[2] + a[3]'); Assert(a = 'hai', 'a <> hai'); Assert(b = 'bai', 'b <> bai'); Assert(a = a, 'a <> a'); Assert(a <> b, 'a = b'); Assert(a + b = 'haibai', 'a + b'); Assert(b + a = 'baihai', 'b + a'); Assert(a + ' ' + b = res, 'res'); end; procedure Test_UnicodeString; const _a: unicodestring = 'hai'; _b: unicodestring = 'bai'; res: unicodestring = _a + ' ' + _b; var a, b: unicodestring; begin a := _a; b := _b; Assert(Length(a) = 3, 'Length(a)'); Assert(Length(b) = 3, 'Length(b)'); Assert(a[1] = 'h', 'a[1]'); Assert(a[1] + b[2] + a[3] = a, 'a[1] + b[2] + a[3]'); Assert(a = 'hai', 'a <> hai'); Assert(b = 'bai', 'b <> bai'); Assert(a = a, 'a <> a'); Assert(a <> b, 'a = b'); Assert(a + b = 'haibai', 'a + b'); Assert(b + a = 'baihai', 'b + a'); Assert(a + ' ' + b = res, 'res'); end; begin Test_TruncString(); WriteLn('TruncString :: Passed'); Test_ShortString(); WriteLn('ShortString :: Passed'); Test_AnsiString(); WriteLn('AnsiString :: Passed'); Test_UnicodeString(); WriteLn('UnicodeString :: Passed'); end.
Output: TruncString :: Passed ShortString :: Passed AnsiString :: Passed UnicodeString :: Passed