Delphi中如何声明ANSI字符串并确定其数组大小?
- 内容介绍
- 相关推荐
本文共计408个文字,预计阅读时间需要2分钟。
在Delphi旧代码中,定义一个大小为3的字符串数组可能如下所示:
delphist: string[3];
现在,为了适应ANSI类型,可以将代码修改为:
delphist: ansistring[3];
对于Advanced OEM类型,可以使用:
delphist: oemstring[3];
同样的问题,如果在某个地方定义了`type OemString='Type'`,可能需要确保这种定义不会引起混淆。
很容易定义一个大小为3的字符串(在旧的delphi代码中)st:string[3];
现在,我们希望将代码移至ansi
st:ansiString[3];
不行!
并为adcanced oem类型
st:oemString[3];
同样的问题,在哪里
type OemString = Type AnsiString(CP_OEMCP);
怎么可以声明一个固定长度的ansi字符串和新的oem类型?
更新:我知道它会创建一个固定长度的字符串.它是防止错误的软件设计的一部分,对程序至关重要.
您不需要定义AnsiString的大小.符号
string[3]
用于Pascal(和Delphi 1)使用的短字符串,它主要用于遗留目的.
短字符串可以是1到255个字节长.第一个(“隐藏”)字节包含长度.
AnsiString是指向字符缓冲区的指针(0终止).它有一些内部魔法,如引用计数.并且您可以安全地将字符添加到现有字符串,因为编译器将为您处理所有令人讨厌的细节.
UnicodeStrings与AnsiStrings类似,但使用unicode字符(在本例中为2个字节).现在默认字符串(Delphi 2009)映射到UnicodeString.
AnsiString类型有一个构造来添加代码页(用于定义127以上的字符),因此CP_OEMCP:
OemString = Type AnsiString(CP_OEMCP);
本文共计408个文字,预计阅读时间需要2分钟。
在Delphi旧代码中,定义一个大小为3的字符串数组可能如下所示:
delphist: string[3];
现在,为了适应ANSI类型,可以将代码修改为:
delphist: ansistring[3];
对于Advanced OEM类型,可以使用:
delphist: oemstring[3];
同样的问题,如果在某个地方定义了`type OemString='Type'`,可能需要确保这种定义不会引起混淆。
很容易定义一个大小为3的字符串(在旧的delphi代码中)st:string[3];
现在,我们希望将代码移至ansi
st:ansiString[3];
不行!
并为adcanced oem类型
st:oemString[3];
同样的问题,在哪里
type OemString = Type AnsiString(CP_OEMCP);
怎么可以声明一个固定长度的ansi字符串和新的oem类型?
更新:我知道它会创建一个固定长度的字符串.它是防止错误的软件设计的一部分,对程序至关重要.
您不需要定义AnsiString的大小.符号
string[3]
用于Pascal(和Delphi 1)使用的短字符串,它主要用于遗留目的.
短字符串可以是1到255个字节长.第一个(“隐藏”)字节包含长度.
AnsiString是指向字符缓冲区的指针(0终止).它有一些内部魔法,如引用计数.并且您可以安全地将字符添加到现有字符串,因为编译器将为您处理所有令人讨厌的细节.
UnicodeStrings与AnsiStrings类似,但使用unicode字符(在本例中为2个字节).现在默认字符串(Delphi 2009)映射到UnicodeString.
AnsiString类型有一个构造来添加代码页(用于定义127以上的字符),因此CP_OEMCP:
OemString = Type AnsiString(CP_OEMCP);

