本当にゴメンナさい.
Char 型の動的配列の初期化のコード,間違えていました.
Pointer を使用する説明を書いておこう思ってコードを眺めていて気づきました.
みんな私が悪いんです.みんな私のせいなんです.
//=============================================================================
// Char型の動的配列の初期化の確認
// 正しいコード
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
LString : String;
LpBuffer : TCharArray;
LText : string;
LIndex : Integer;
begin
Memo1.Lines.Clear;
LString := '日本語 ABC';
LpBuffer := LString.ToCharArray;
FillChar(Pointer(LpBuffer)^, Length(LpBuffer) * SizeOf(Char), #0);
for LIndex := 0 to Length(LpBuffer) - 1 do begin
LText := IntToStr(LIndex) + ' : ' + LpBuffer[LIndex];
Memo1.Lines.Add(LText);
end;
end;
//=============================================================================
// Char型の動的配列の初期化の確認
// FillChar関数の使用方法が間違っているコード
//=============================================================================
procedure TForm1.Button2Click(Sender: TObject);
var
LString : String;
LpBuffer : TCharArray;
LText : string;
LIndex : Integer;
begin
Memo1.Lines.Clear;
LString := '日本語 ABC';
LpBuffer := LString.ToCharArray;
FillChar(Pointer(LpBuffer)^, SizeOf(LpBuffer), #0);
for LIndex := 0 to Length(LpBuffer) - 1 do begin
LText := IntToStr(LIndex) + ' : ' + LpBuffer[LIndex];
Memo1.Lines.Add(LText);
end;
end;
|