CHAR类型的处理

power_yhb 2003-08-26 10:54:34
有一个类型为
buffer:array[1..5200] of char
现在我先在这个buff中填入了2000个字节.用什么方法可以一次性取出这2000个数据
...全文
38 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿亮 2003-09-25
  • 打赏
  • 举报
回复
一群笨蛋。

var
p: pchar;

getmem(p, 2000);
strcopy(p, buf);
zjybestzjybest 2003-09-04
  • 打赏
  • 举报
回复
CopyMemory
LSF1982 2003-09-04
  • 打赏
  • 举报
回复
用楼上的方法吧
power_yhb 2003-09-04
  • 打赏
  • 举报
回复
谢谢各位的参与,最后我还是没有用你们的方法,我用了内存流.哈哈,解决问题了.不过我还是会给分
zjqyb 2003-09-03
  • 打赏
  • 举报
回复
CopyMemory
power_yhb 2003-08-29
  • 打赏
  • 举报
回复
不行的,string类型是以NULL结束的.而我的CHAR中有各种类型的数据.不可以用这咱方式.最好的就昌上面的MOVE了
freebird1020 2003-08-27
  • 打赏
  • 举报
回复
var buffer:array[1..5200] of char;
a:string;
begin
a:=string(buffer);//强制转换,string的下标是从1开始的
showmessage(a);
end;
power_yhb 2003-08-26
  • 打赏
  • 举报
回复
我用API写程序,当用REC接收数据时,有于网络的不稳定,经常出现5K的数据包要分好几次才能收到.所以当从BUFF中的数据小于5K时,我就要取出实际得的数据量,比如1K先存起来.
我的问题就是如何从5K大小的数据里,取得前面的1K.当然上面所说的循环是没有问题的.但最好是有什么系统函数.

请各抒己见!
mxk19791116 2003-08-26
  • 打赏
  • 举报
回复
你这个是要干什么?
hkbarton 2003-08-26
  • 打赏
  • 举报
回复
直接取地址不可以吗?
zjqyb 2003-08-26
  • 打赏
  • 举报
回复
一次性取出是何意思,取到何处
power_yhb 2003-08-26
  • 打赏
  • 举报
回复
有没有别的办法,循环太占CPU时间了.再说数据量也挺大的
mxk19791116 2003-08-26
  • 打赏
  • 举报
回复
如果字符串不能取的话,可以做个循环。
for i=1 to 200 then
显示buffer[i],
这样不行吗?
mxk19791116 2003-08-26
  • 打赏
  • 举报
回复
先定义一个字符串变量,
字符串变量=buffer
这样就可以了。
power_yhb 2003-08-26
  • 打赏
  • 举报
回复
有线数据字符串不能读取.所以不能用这个方法
上海老李 2003-08-26
  • 打赏
  • 举报
回复
转成字符串呗
power_yhb 2003-08-26
  • 打赏
  • 举报
回复
我试试,不过这是个好方法.
citytramper 2003-08-26
  • 打赏
  • 举报
回复
用move试试 直接内存拷贝

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧