procedure TForm1.Button7Click(Sender: TObject);
var
s: String[200];
s1, s2: String;
begin
s := 'abcdefghijklmn';
SetLength(s1, Length(s));
s2 := s1; // s2 := s1 = ‘’
Move(s, PChar(s2)^, Length(s));
s1[1] := 'z';
s2[8] := #0;
ShowMessage(s1 + ':' +
IntToStr(Length(PChar(s2))) + IntToStr(Length(s2)));
end;
我的问题是,为什么Move操作之后,S2的内容不等于S 而是 等于' abcdefghijklmn'第一个字符为空?procedure TForm1.Button6Click(Sender: TObject);
var
s1: array[1..10] of Char;
s2, s3: array of Char;
begin
FillChar( s1, 10, 'M');
SetLength(s2, 10);
SetLength(s3, 10);
Move(s1, s2[0], 10);
s3 := s2;
s3[0] := 'B';
ShowMessage(PChar(s2));
end;
这里Move之后 S2 却又是等于s1的希望大家指教
var
s: String[200];
s1, s2: String;
begin
s := 'abcdefghijklmn';
SetLength(s1, Length(s));
s2 := s1; // s2 := s1 = ‘’
Move(s, PChar(s2)^, Length(s));
s1[1] := 'z';
s2[8] := #0;
ShowMessage(s1 + ':' +
IntToStr(Length(PChar(s2))) + IntToStr(Length(s2)));
end;
我的问题是,为什么Move操作之后,S2的内容不等于S 而是 等于' abcdefghijklmn'第一个字符为空?procedure TForm1.Button6Click(Sender: TObject);
var
s1: array[1..10] of Char;
s2, s3: array of Char;
begin
FillChar( s1, 10, 'M');
SetLength(s2, 10);
SetLength(s3, 10);
Move(s1, s2[0], 10);
s3 := s2;
s3[0] := 'B';
ShowMessage(PChar(s2));
end;
这里Move之后 S2 却又是等于s1的希望大家指教
解决方案 »
- 如何用delphi设置IE为默认浏览器,
- 请问能不能让delphi不在鼠标点击的地方输入?像vs一样.默认在行首
- 用TClientDataSet新增一条记录到库中,成功了,但是取不回它的IID,IID为库中自增的字段,也是主键
- 大虾们注意了!!!谁有解释delphi的组件属性的文档?
- 请问怎么样在窗口上显示XP风格的图标
- 请教远程调用web应用问题
- 大家都来说两句 INPUTBOX的一个问题
- 高分求助,程序速度慢怎样解决
- 请教在DELPHI中有哪几种报表的显示方法?如果想用EXCEL来进行报表显示,能否将整个EXCEL嵌入到窗体的OLE容器中?
- 超简单问题,HDC(设备描述表句柄)指的是什么?和HWnd有什么区别?
- TAdoDataSet导入xml的问题!
- 如何限制combobox中的内容只可以是数字
s := 'abcdefghijklmn';
SetLength(s1, Length(s));
ShowMessage(s1);
看看结果
var
s: String[200];
s1, s2: String;
begin
s := 'abcdefghijklmn';
SetLength(s1, Length(s));//设置s1的长度为14
s2 := s1; // s2 := s1 //在这段函数中的作用是将s2的长度和s1设置得一样长
// Move(s, PChar(s2)^, Length(s));//复制了14个字符,从0~13位
Move(s[1], PChar(s2)^, Length(s));//复制了14个字符,从1~14位
//string类型是从第一位算起。Pchar类型是从第0位算起。
s1[1] := 'z';
s2[8] := #0;
ShowMessage(s);
ShowMessage(s1);
ShowMessage(s2);
ShowMessage(s1 + ':' +
IntToStr(Length(PChar(s2))) +':' +IntToStr(Length(s2)));
end;
s1: array[1..10] of Char;
s2, s3: array of Char;
begin
FillChar( s1, 10, 'M');
// ShowMessage(s1[1]+s1[2]+s1[3]+s1[4]+s1[5]+s1[6]+s1[7]+s1[8]+s1[9]+s1[10]);
SetLength(s2, 10);
SetLength(s3, 10);
Move(s1, s2[0], 10); //你的s1是[1..10],所以,这里的s1=s1[1]
// Move(s1[1], s2[0], 10); //和上面的语句一样的效果
s3 := s2;
s3[0] := 'B';
s3[10]:=#0; //加上这句,字符串则从0..9,动态数组起始是0
ShowMessage(PChar(s2));
end;