DEF PROCredimpreserve1d_string(RETURN a$(), D%)
LOCAL P%,O%, A%,N%, S%,s{}, I%
DIM s{a$}
S% = DIM(s{}) : D% += 1 : P% = !^a$()
N% = 5 + S% * D%
O% = 5 + S% * P%!1
IF N% = O% ENDPROC
SYS "GlobalAlloc", 64, N% TO A%
IF N% < O% THEN
FOR I% = DIM(a$(), 1) - ((O% - N%) / S% - 1) TO DIM(a$(), 1)
a$(I%) = ""
NEXT
SWAP N%, O%
ENDIF
SYS "RtlMoveMemory", A%, P%, O%
IF P% < LOMEM OR P% > HIMEM SYS "GlobalFree", P%
A%!1 = D%
!^a$() = A%
ENDPROC
|
|
|
|
IF N%>O% SWAP N%,O%
IF N%<O% ERROR 100, "Can't shrink array"
|
|

|