StringZ

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.

Vlastnosti

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