ShortString类型将分配256个字节。 。
High返回它的最大长度,Low返回0。
8位ANSI字符。 0的字符串),指针为nil,内存块存储字符串的值:它的内存在堆中分配,但它的管理是完全自动的,1。若引用计数为0,它的内存被释放。这个1,
- 51 -
100它指向一个动态分配的内存块,
Data types, variables and constants
Wide strings(宽字符串)
WideString(宽字符串)
WideString类型是动态分配的、由16位Unicode字符所构成的字符串。在大多数方面,它和AnsiString相似。(注:宽字符串没有引用计数,不支持copy-on-write机制,但支持内存动态分配。)
在Win32下,WideString和COM BSTR类型兼容。Borland开发工具支持把AnsiString类型转换为WideString,但你可能需要明确地使用类型转换。
About extended character sets(关于扩展字符集)
Windows和Linux都支持单字节和多字节字符集,同样也支持Unicode。使用单字节字符集(SBCS),字符串的每个字节表示一个字符。ANSI字符集被许多西方(国家的)操作系统使用,它是单字节字符集。
在多字节字符集(MBCS)中,一些字符由一个字节表示,而另一些则使用多个字节。多字节字符的第一个字节称为头字节(lead byte)。通常,在多字节字符集中,前128个字符对应于7位ASCII字符(0-127),任何序数值大于127的字节为多字节字符的头字节。只有单字节字符能包含空值(#0)。多字节字符集(特别是双字节字符集,DBCS),被亚洲语言广泛使用,但Linux使用的UTF-8字符集是Unicode的一种多字节编码。
在Unicode字符集中,每个字符用两个字节表示,所以,一个Unicode字符串是由双字节组成的序列。Unicode字符和字符串也被称为宽字符和宽字符串。前256个Unicode字符被映射到ANSI字符集。Windows操作系统支持Unicode(UCS-2)。Linux操作系统支持UCS-4,是UCS-2的超集。Delphi/Kylix在两个平台上都支持UCS-2。
Object Pascal支持单字节和多字节字符以及字符串,适用的类型有:Char、PChar、AnsiChar、PAnsiChar和AnsiString。对多字节字符串使用索引是不可取的,因为S[i]表示S中第i个字节(不一定是第i个字符),但是,标准字符串处理函数有多字节版本,它们还实现了locale-specific ordering for characters(多字节函数的名称通常以Ansi开头,比如StrPos的多字节版本是AnsiStrPos)。多字节支持依赖于操作系统和本地设置(current locale)。
Object Pascal使用WideChar、PWideChar和WideString类型支持Unicode字符和字符串。
Null-terminated strings(零结尾字符串)
Working with null-terminated strings(使用零结尾字符串)
许多编程语言,包括C和C++,它们没有专门的字符串类型。这些语言以及它们创建的系统依赖于零结尾字符串,它们是0下标开始的字符数组,并且最后一个是NULL(#0)。因为它们没有长度指示,第一个NULL字符就是字符串的结尾。当需要与其它语言创建的系统共享数据时,你可以使用Object Pascal句法以及SysUtils单元的特殊例程来处理零结尾字符串。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-34.html
我只能呵呵了