2009-06-19 50 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; 
相關問題