Duple StringとStrigOfCharの違い-リプライ「鷹@長空」
1652 ワード
問題のソース:
http://www.cnblogs.com/del/archive/2008/06/04/1101970.html#1217512
StringOfCharは「文字」を繰り返して「文字列」にする関数です。
Duple Stringは「文字列」を繰り返して「新しい文字列」にする関数です。
StringOfCharはSystemユニットから直接使用できます。
Duple StringはStrUtilsユニットから来ています。使う時はuses StrUtilsが必要です。
繰り返すだけの「文字」なら、もちろんStringOfCharを使って、それはアセンブリコードで実現されています。
以下はテストコードです。
http://www.cnblogs.com/del/archive/2008/06/04/1101970.html#1217512
StringOfCharは「文字」を繰り返して「文字列」にする関数です。
Duple Stringは「文字列」を繰り返して「新しい文字列」にする関数です。
StringOfCharはSystemユニットから直接使用できます。
Duple StringはStrUtilsユニットから来ています。使う時はuses StrUtilsが必要です。
繰り返すだけの「文字」なら、もちろんStringOfCharを使って、それはアセンブリコードで実現されています。
以下はテストコードです。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses StrUtils; {DupeString }
procedure TForm1.FormCreate(Sender: TObject);
var
str: string;
begin
str := System.StringOfChar('A', 5);
ShowMessage(str); {AAAAA}
str := StrUtils.DupeString('A', 5);
ShowMessage(str); {AAAAA}
str := StrUtils.DupeString('ABC', 5);
ShowMessage(str); {ABCABCABCABCABC}
end;
{ , StringOfChar ; :}
procedure TForm1.Button1Click(Sender: TObject);
var
t1,t2: Cardinal;
i: Integer;
begin
t1 := GetTickCount;
for i := 0 to 1000000 do DupeString('A', 5);
t1 := GetTickCount - t1;
t2 := GetTickCount;
for i := 0 to 1000000 do StringOfChar('A', 5);
t2 := GetTickCount - t2;
ShowMessageFmt('DupeString: %d; StringOfChar: %d', [t1,t2]);
end;
end.