var
P: PChar;
I, J: Integer;
begin
I := 10;
GetMem(P, I);
P := '1234567890';
J := 1;
while J <= I do
begin
ShowMessage(P^);
Inc(P);
Inc(J);
end;
FreeMem(P)
end;
VAR
S : STRING;
I : INTEGER;
BEGIN
//YOUR_PCHAR_VAR为pchar类型,转化为delphi类型的string
S := strpas(YOUR_PCHAR_VAR);
FOR I := 1 TO LENGTH(S) - 1 DO
BEGIN
SHOWMESSAGE(INTTOSTR(ORD(S[I])));
END;
END;
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
s : string;
p : pChar;
begin
p := strAlloc(100);
for i:=0 to 99 do
begin
p[i] := Char(i);
Memo1.Lines.Add(IntToStr(Integer(p[i])))
end;
strDispose(p);
end;
procedure ReadByte(Addr, Count: Integer; var DymArray: TDymArray);
var
I: Integer;
begin
SetLength(DymArray, Count);
for I := 0 to Count - 1 do
DymArray[I] := PByte(Addr + I)^;
end;
procedure TForm1.Button6Click(Sender: TObject);
var
S: string;
I: Integer;
MyArray: TDymArray;
begin
S := Copy('1234ABCD', 1, 8);
ReadByte(Integer(S), 8, MyArray); <----
for I := 0 to Length(MyArray) - 1 do
Memo1.Lines.Add(IntToStr(MyArray[I]));
end;
procedure ReadByte(Addr, Count: Integer; var DymArray: TDymArray);
Addr是地址(指的是内存中地址)
Count读取多少长度(内存中连续的Count个地址)。
DymArray是存放取到的内容。