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"
|
|
|