超级菜:pchar和char有什么区别,如何将他们转换成string,并去掉两端空格
解决方案 »
- Delphi下调用Excell的技术探讨!
- DBGrid是否支持选择框(Check Box)类型的多项选择?
- 统计一个控件中各种空格和回车的个数?
- 请教怎么打印DBGrid中的内容啊
- ●●● 招 聘 ●●●
- delphi中提取数据的奇怪问题?
- 请问:如何把当前桌面复制,并保存到文件中。(复制相当于按 Print Screen键)
- 有谁真真的把李维的《Delphi 5.x ADO/MTS/COM+ 高级程序设计篇》第九章的例子做出来过,请进来。
- 这样做可以释放线程对象吗?
- 如何安装kylix?
- 我做了一个简单的*.mp3,*.dat等播放程序,给你们发一个
- 如何知道ADOQuery中的SQL查询使用了那些字段
Trim()//去掉两端空格
begin
Result := Str;
end;就是怎么容易很多时候不用转化就能互相兼容,一般和其它程序交换数据时才必须使用PChar!
PChar 表示指针,它指向一个以0结尾的Char字符数组字符数组:象C和C++,它们没有专门的字符串类型,这些语言以及它们创建的系统依赖于零结为字符串,它们是0下标开始的字符数组,并且最后一个是NULL(#0)比如
Var P:Pchar;
...
P:='Hello Word!';(注:编译器在字符串的末尾添加一个NULL)
使P指向一个内存区域,这里存储着'Hello World!',它的结尾被添加一个NULL字符。表达式中可以混合使用字符串(String)和零结尾字符串(PChar)
可以把PChar强制转换为字符串类型
比如说:
var P:Pchar;
...
String(P);同样也可以把Char强制转换为字符串类型
比如说:
var
a:char;
b:String;
begin
a:='a';
b:=String(a);
end;唉,我的手都打酸了!
s:= string(p)这种形式。
使用s := p;delphi中不用string不用转换就可以转成pchar试一试就行了。
而string转成pchar,就需要用pchar(s)来转
var
P: PChar;
S: string;
begin
...
S := P;
...
P := PChar(S);
end;
var
P: PChar;
S: string;
begin
GetMem(P, 2);
P^ := 'a';
Inc(P);
P^ := 'b';
Dec(P);
S := P;
Caption := Format('s: %p, p: %p, string(p): %p', [
Pointer(S), Pointer(p), Pointer(string(p))]);
FreeMem(P);
end;