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