[在线等]如何将字符数组中的一段字符转换成字符串?

darzui 2004-08-05 03:46:25
有一个字符数组Buffer,我想转换Buffer[0]到Buffer[20]的字符到字符串,应该怎么做?
我的想法是一个字符一个字符地拷贝到字符串中,但是有没有更好的方法?delphi提供了相关的函数吗?
谢谢!
...全文
191 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
darzui 2004-08-05
  • 打赏
  • 举报
回复
把参数chars设置成静态数组,就行了,晕,文档上明明写着参数是动态数组的
luke5678 2004-08-05
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
Str: string;
i : integer;
A_array: array [0..19] of char;
begin
Str := '';
A_array[0] := 'A';
A_array[1] := 'B';
...
A_array[19] := 'T';
for i := 0 to 19 do
Str := Str + string(A_array[i]);
ShowMessage(Str);
end;
GoldShield 2004-08-05
  • 打赏
  • 举报
回复
var
s:string;
.....
for i:=1 to 20 do
begin
...
s:=s+Buffer[i];
...
end;
wizardqi 2004-08-05
  • 打赏
  • 举报
回复
//我是这样测试的。
function GetSubStr(Str:array of char;BeginPos,Len:Integer):String;
begin
Result:=Copy(Str,Beginpos,Len);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Buffer:array[0..100] of Char;
begin
Buffer:='1a2s3dfasdfasdfasdfasdfasdfasdf';
ShowMessage(GetSubStr(Buffer,0,20));
end;
darzui 2004-08-05
  • 打赏
  • 举报
回复
我试了试copy函数
var
s: string;
begin
s := copy(chars, 5, 10);
end;
但是编译器报错Incompatible types 'String' and 'dynamic array'
怎么回事?
wizardqi 2004-08-05
  • 打赏
  • 举报
回复
function GetSubStr(Str:array of char;BeginPos,Len:Integer):String;
begin
Result:=Copy(Str,Beginpos,Len);
end;

str:=GetSubStr(Buffer,0,20);即可
干脆用 str:=(Buffer,0,20);多简单。
瞧我做了些什么?真罗嗦。 ^_^
bluesky23 2004-08-05
  • 打赏
  • 举报
回复
这个函数也可以
Copy(vStr,start,length);
bluesky23 2004-08-05
  • 打赏
  • 举报
回复
var
Str: string;
achar: array [0..200] of char;
begin
Str:='拷贝字符号串sdfsdfsdsdfsdfsdf';
CopyMemory(@achar, PChar(Str), Length(Str));
achar[Length(Str)] := #0; // <---- 设置结束标志
MessageBox(0,achar,achar,MB_ok);
end;

注意Copy的内容的长度不要超过200
bluesky23 2004-08-05
  • 打赏
  • 举报
回复
还没有见到这样的函数。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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