Length()返回字符元素的長度,此值可能和字符在字節長度上並不匹配。SizeOf 函數則返回數據的字節長度,這意味著 SizeOf 和 Length 的返回值可能是不同的
Copy(, , )返回的 SubString 基於字符元素
Pos(,)返回第一個字符元素的序號
操作
CompareStr()
CompareText()
...
FillChar()
FillChar(Rect, SizeOf(Rect), #0)
FillChar(WndClassEx, SizeOf(TWndClassEx), #0). 使用的時候注意 WndClassEx.cbSize := SizeOf(TWndClassEx)
Windows API
API 默認使用 WideString (*W)形態的版本
PChar()具有相同的語義
范例:
GetModuleFileName:
function ModuleFileName(Handle: HMODULE): string;
var
Buffer: array[0..MAX_PATH] of Char;
begin
SetString(Result, Buffer, GetModuleFileName(Handle, Buffer, Length(Buffer)));
end;
GetWindowText:
function WindowCaption(Handle: HWND): string;
begin
SetLength(Result, 1024);
SetLength(Result, GetWindowText(Handle, PChar(Result), Length(Result)));
end;
字符串索引:
function StripHotKeys(const S: string): string;
var
I, J: Integer;
LastChar: Char;
begin
SetLength(Result, Length(S));
J := 0;
LastChar := #0;
for I := 1 to Length(S) do
begin
if (S[I] <> '&') or (LastChar = '&') then
begin
Inc(J);
Result[J] := S[I];
end;
LastChar := S[I];
end;
SetLength(Result, J);
end;