_StrPut

( P1 : ......;
  P2 : ......;
  Pn : ......) : String

Funkce _StrPut slouží k rychlému uložení parametrů P1, P2Pn do řetězce.

Parametry mohou být typu Byte, Char, Word, Integer, LongInt, Real, Date, DateTime a String.  Opakem procedury _StrPut je StrGet. Místo procedury _StrPut lze také používat funkci StrPut.

Funkce hlásí chybu v rozsahu v případě, že celkový počet vkládaných znaků překročí 255 znaků.

Typ Date zabere 6 znaků, typ DateTime zabere 12 znaků.

Neukládejte výsledek funkce do řetězce typu StringZ. Tento řetězec je ukončován binární nulou (#0) a tento znak se může ve výsledném řetězci objevit!

Při použití proměnné typu String v parametru Px, zabere ve Str tolik místa, jaká je jeho dimenze. Místa v pravo budou doplněna znakem #0:

 dim S : String[20] { zabere dvacet míst }

Použijete-li řetězec vytvořený pomocí funkce, nebo řetězce v parametru sečtete, zabere takto vytvořený řetězec ve Str pouze svou délku:

_RightSP(S, 10) { zabere deset míst }

Pozor! Použijete-li místo proměnných konstanty, provede program optimalizaci podle jejich velikostí:

StrPut(Rec, 10, 90, 900) { vložení Byte(10), Byte(90) a Word(900) }

Příklad:

procedure TestStrPut
	dim a : String[5];
	dim b : String[7];
	dim c : Byte;
	dim d : Word;
	dim s : String;
	
	a := "a";
	b := "bb";
	c := 1;
	d := 5;
	s := _StrPut(a,b,c,d,a+b,900,5+1,"ABC");
endproc

a b c d a+b 900 6 ABC
61 00 00 00 00 62 62 00 00 00 00 00 01 00 05 61 62 62 03 84 06 41 42 43

Příklad:

dim Rec : String;        dim B   : Byte;
dim W   : Word;          dim R   : Real;
dim LI  : LongInt;       dim D   : Date;
dim Ch  : Char;          dim S5  : String[5];
dim S10 : String[10];

B := 10;          Ch := "L";
I := -90;         W := 7800;
LI := 800000;     R := -1345.98;
S5 := "ABCDE";    S10 := "abcdefghij";
StrPut(Rec, B, Ch, I, W, LI, R, S5, S10)
{ Stejný výsledek (ale pomaleji) získáte: }
Rec := _Chr(B) + Ch + _ChrI(I) + _ChrW(W) + _ChrLI(LI) +
       _ChrR(R) + S5 + S10;

 

Podívejte se na: Práce s řetězci