Proměnná nebo konstanta typu řetězec. Maximální délka není omezena. Deklaruje se tako:
dim S : StringZ;
Maximální rozměr se neuvádí. Délka se dynamicky upravuje podle potřeby.
Jestliže potřebujete, aby řetězec obsahoval i binární nuly, použijte typ String. Typ String má však omezenou maximální délku na 255 znaků!
Řetězcové konstanty:
Řetězcové konstanty jestliže jsou delší než 255 znaků, přechází automaticky do typu StringZ.
const sz : stringz =
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789.";
{ to samé jako: }
sz :=
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789." +
"123456789.123456789.123456789.123456789.123456789.";
Sčítání řetězců:
Při sčítání řetězců za běhu makra nedochází (z důvodů zpětné kompatibility) k automatickému přechodu typu String na StringZ, v případě překročení 255 znaků:
dim sz : StringZ;
sz := _FillCh("a",200) + _FillCh("b",200);
_PrintUp(_Len(sz)); { Délka není 400, ale pouze 254, ne 255, protože poslední znak bude zakončovací nula }
Aby proběhl přechod na typ StringZ, použijte při skládání řetězce funkci _StringZ:
dim sz : StringZ;
sz := _StringZ(_FillCh("a",200)) + _StringZ(_FillCh("b",200));
_PrintUp(_Len(sz)); { Délka je nyní 400 }
nebo Switch přepínač "Z+" (default je z důvodů zpětné kompatibility "Z-")
dim sz : StringZ;
switch("Z+");
sz := _FillCh("a",200) + _FillCh("b",200);
_PrintUp(_Len(sz)); { Délka je nyní 400 }
Příklady:
dim S : StringZ;
dim S(5,10) : StringZ;
{ Řetězec s přednastavenou hodnotou }
const Sx : StringZ = "abcdef";
Podívejte se na: Deklarace