delphi兩個取字串長度的函數strlen,length

Delphi兩個取字串長度的函數strlen,length

【strlen】PChar 串專用函數:串長度

procedure TForm1.BitBtn1Click(Sender: TObject);
var s: Widestring;
begin
s := ‘臺灣自由平等博愛’;
ShowMessage(IntToStr(Length(String(s))));//結果不是8而是16
end;
━━━━━━━━━━━━━━━━━━━━━━━━━━
如果想得到8:
ShowMessage(IntToStr(Length(s)));//結果不是16而是8

━━━━━━━━━━━━━━━━━━━━━━━━━━
【length】Length (S): Integer; 返回參數字串的長度。

AnsiString這是Pascal缺省的字串類型,它由AnsiChar字元組成,其長度沒有限制,同時與null結束的字串相相容。

在大多數情況下,AnsiString類型能被用成PChar,應該盡可能地使用AnsiString,因為它對字串記憶體的管理是自動,
極大地減少了應用程式中記憶體混亂的錯誤代碼,因此,要盡可能地避免用PChar類型以及對它相應進行人工分配記憶體。


unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var s: Widestring;
begin
s := '臺灣自由平等博愛';
ShowMessage(IntToStr(Length(String(s))));//XE顯示8   //D7 結果不是8而是16
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var s: Widestring;
begin
s := '臺灣自由平等博愛';
ShowMessage(IntToStr(Length(s))); //XE顯示8  //D7結果不是16而是8
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
  s: AnsiString;
begin
  s:='臺灣自由平等博愛';
  ShowMessage(IntToStr(Length(s)));  //XE顯示16
end;
 
procedure TForm1.Button4Click(Sender: TObject);
var
  s: AnsiString;
begin
  s:='臺灣自由平等博愛';
  ShowMessage(IntToStr(strlen(PWideChar(s)))); //XE顯示8
end;
 
procedure TForm1.Button5Click(Sender: TObject);
var
  s: AnsiString;
begin
  s:='臺灣自由平等博愛';
  ShowMessage(IntToStr(SizeOf(PWideChar(s)))); //XE顯示4(32位元程式)
end;
 
end.

我們團隊使用Delphi已經30年以上的經驗,如果有什麼問題,歡迎與我們聯繫,也可以在下方留言處與我們分享,感謝您!!

手刀試用=>蝦皮對帳王

手刀試用=>康捷雲端ERP

相關文章

👉 Delphi-Component-TProgressBar進度條範例

👉 網路版市招明年元旦上路,財部盤點四大適用情境
賦稅署官員表示,如果個人當月銷售額未達營業稅起徵點(銷售貨物8萬元;勞務4萬元)而暫免申請稅籍登記,就不會有網路版市招新制適不適用的問題。

👉 進出貨一覽表 簡單王 操作步驟詳解

👉 簡單王-進出貨匯入上傳工具 操作步驟詳解

👉 蝦皮對帳王-蝦皮對帳結果一覽表-為什麼要對帳?無對應???

👉 蝦皮對帳王-對帳原理分析-有訂單,有撥款だいじょうぶ(大丈夫);有訂單,沒撥款 歐NO~~~~~!!!

[蝦皮服務] 訂單完成後什麼時候能夠收到款項呢?

任何一套系統的撰寫與維護,都需要相對應的人力與雲端資料庫來維持。
感謝您願意使用我們的系統。

期待您的留言

Comments

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *