2009-06-19 77 views
5

Embaracdero文件"IsEmpty" methods字符串“为IsEmpty”方法对于字符串类型,我已经用C++ Builder代码成功应用。我可以使用Delphi中

WideString s; 

if (s.IsEmpty()) 
    .... 

我试图从德尔福一样的,不能把它编译:

var s: WideString; 
begin 
    if s.IsEmpty then 
    .... 

我知道你可以用空字符串比较,或致电长度的功能,但有可能从Delphi调用这个IsEmpty方法?

编辑:只是为了澄清,这是不是意味着作为一个String VS WideString的问题。

基本上,我链接到上面的文档描述了Pascal语法,以及一个C++一个如,然而这似乎不工作。我认为这只是文档中的一个缺陷。

返回true如果系统:: WideString的WideString的::是空的。

Pascal: function IsEmpty:bool;

+0

什么是C++实现什么样子的? – 2009-06-19 12:41:05

+1

你可能不认为这是一个WideString与字符串问题,但它是。 – 2009-06-19 15:11:15

+0

@Craig - 问题不应该涉及字符串,只有WideStrings。你能详细说明吗? – Roddy 2009-06-19 15:13:23

回答

14

字符串不是Delphi中的类,因此它没有方法,你必须使用像Length,Copy等字符串操作的函数...... String是C++中的一个类,所以也许你会感到困惑。

1
if Trim(s)='' then 

???

5

串号是不是WideString的,即便是在D2009。你也不想要;与nil /空字符串比较比方法调用快得多。

在Delphi:

var 
    s: string; 
begin 
    if s = '' then begin 
    ShowMessage('It is empty or nil.'); 

...字符串同时检测零和空字符串(这是=无)。

5

Delphi是一种混合语言。它包含基本的类型和类。只有类(和记录和对象)可以包含方法。

String是一个基本的类型,虽然特殊的一个。它是唯一具有保留字的类型。这就是为什么它通常用小写字符串(字符串)写的,而不像其他类型有起始资本(整数)。

你可以,如果你喜欢:

type 
    TString = class 
    private 
    FString: string; 
    public 
    constructor Create(const AValue: string); 

    property &String: string read FString write FString; 
    property IsEmpty: Boolean read GetIsEmpty; 
    // ... 
    end; 
相关问题