如何设置大于 255 的定长 string? string[255] 而无法再大,我想到定长的并且大于 255 的,怎么办呢?因为在 tcp 中传输,必须定长 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我要的是定长的,用 widestring 在 tcp 中无法传输 varcs: array[0..1024] of char或者用二进制流 为什么要什么这么做呢?array[0..1023] of char不好吗?? to: hj007((初学者))字符串数组还是字符数组?偶们都在讨论后面的,并且array[0..1023] of char一点都不浪费内存,还不用自己析构。 pchar肯定不行,pchar其实就是一指向char的指针,可以用它来分配不定长度的内存楼主是要定长,那为何要使用pchar?除了要自己分配内存之外,还要在适当的时候自己释放 var p: PChar;begin GetMem(p, 5000); Zeromemory(p, 5000); // Input Your Code FreeMem(p);end; var p: PChar;begin GetMem(p, 5000); try ZeroMemory(p, 5000); StrCopy(p, PChar(SomeString)); // Input Your Code finally FreeMem(p); end;end; SetLength(A, 300);设置字符串长度~ 劝你还是用char数组,原因如下:string是系统动态维护的。即使你定义成定长的,在有赋值操作时,除非你赋的长度和你定义的一样长,否则string的长度是会变的,如果你赋值的长度超过你定义的长度,多余的信息还会丢失。如:var str:string[200];begin str := 'abcd'; ShowMessage(IntToStr(Length(str))); //你看这时的长度是多少?(4啊,而不是255)end;所以你要是想在传输中使用,还是自己来定义管理缓冲区好。 刚才打错了 ShowMessage(IntToStr(Length(str))); //你看这时的长度是多少?(4啊,而不是200) 你可以用AnsiString,用SetLength函数设置长度,或者重复使用string[255],重复次数由你控制 文本筛选 dbgrid内的数据保存问题 求教:在做毕业论文,课题是图书馆里的图书管理系统! 问一个SQL的问题 关于MM和程序 在DELPHI的TQUERY中,或者在INTERBASE中如果有两条SQL语句, 中间用什么分开? ado的Parameters问题。 存储过程花了两个小时才计算完,有没有改善的好办法,80分相送!!!!!!!!! 如何改变TEdit,TComboBox控件Enabled:=False时字体颜色(不用控件) 请问如保使FireMonkey的程序嵌入到其它窗体中? 给位来帮帮忙好吗? 自己做的一个组件不能够删除的问题!
cs: array[0..1024] of char
或者用二进制流
array[0..1023] of char不好吗??
字符串数组还是字符数组?偶们都在讨论后面的,并且array[0..1023] of char一点都不浪费内存,还不用自己析构。
楼主是要定长,那为何要使用pchar?除了要自己分配内存之外,还要在适当的时候自己释放
begin
GetMem(p, 5000);
Zeromemory(p, 5000);
// Input Your Code
FreeMem(p);
end;
begin
GetMem(p, 5000);
try
ZeroMemory(p, 5000);
StrCopy(p, PChar(SomeString));
// Input Your Code
finally
FreeMem(p);
end;
end;
设置字符串长度~
string是系统动态维护的。即使你定义成定长的,在有赋值操作时,除非你赋的长度和你定义
的一样长,否则string的长度是会变的,如果你赋值的长度超过你定义的长度,多余的信息还
会丢失。
如:
var
str:string[200];
begin
str := 'abcd';
ShowMessage(IntToStr(Length(str))); //你看这时的长度是多少?(4啊,而不是255)
end;
所以你要是想在传输中使用,还是自己来定义管理缓冲区好。