精易论坛

标题: 我也发个 数组_合并 [打印本页]

作者: 神女软件定制    时间: 2020-12-30 20:48
标题: 我也发个 数组_合并
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
arr文本型0
arr = { “1234567890123456123456789012345612345678901234561234567890123456”, “1234567890123456” }
调试输出 (数组_合并 (arr, “<->”))
子程序名返回值类型公开备 注
数组_合并文本型 
参数名类 型参考可空数组备 注
cs_数组文本型
cs_分隔符文本型
变量名类 型静态数组备 注
count整数型 
sptlen整数型 
size整数型 
p整数型 
pos整数型 
i整数型 
len整数型 
temp文本型 
count = 取数组成员数 (cs_数组)  ' 缓存成员数
sptlen = 取文本长度 (cs_分隔符) + 1
size = 16 × count  ' 初始分配大小,合理的认为,每个文本成员大约16个字符
p = 申请内存 (size, )
计次循环首 (count, i)
len = 取文本长度 (cs_数组 [i])
如果真 (pos + len + sptlen > size)  ' 如果内存装不下了。
size = size × 2  ' 在原来基础上分配两倍内存
调试输出 (“不够了,重分配”)  ' 如果还是装不下
如果真 (pos + len + sptlen > size)  ' 就老老实实分配刚好能装下的内存
size = pos + len + sptlen
调试输出 (“*2依然不够,分配刚好满足的内存”)
p = api_LocalReAlloc (p, size, 2)  ' 2=LMEM_MOVEABLE
写到内存 (cs_数组 [i], p + pos, len)
写到内存 (cs_分隔符, p + pos + len, sptlen)
pos = pos + len + sptlen - 1
计次循环尾 ()
如果真 (pos ≠ 0)
写到内存 (0, p + pos - sptlen + 1, 1)  ' 取消掉最后一次添加的分隔符
temp = 指针到文本 (p)
释放内存 (p)
返回 (temp)


i支持库列表   支持库注释   
spec特殊功能支持库

tt.e (4.37 KB, 下载次数: 16)


作者: 外星星人    时间: 2020-12-31 11:22
感谢分享哦




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4