如何将一个Array of Char,转到一个结构中(100分)

  • 主题发起人 主题发起人 火凤凰
  • 开始时间 开始时间

火凤凰

Unregistered / Unconfirmed
GUEST, unregistred user!
type
B=record
I:integer;
Block:Array[0..399] of Char;
end;
type Buf=Array [0..4]of B;

Var
A:Array[0..2020] of Char;
C:Buf;

如何将A的数据读入C中
 
做个纠正
A:Array[0..2019] of Char;
 
var
K,J,mm :Integer;
S :String;
begin
mm :=(High(A)-Low(A)+1) div 5
//404
for J :=0 to 4 do
begin
for K :=J*mm to (J+1)*mm-1 do
begin
if (J<=K) and (K<=J*mm+3) then
begin
S :=A[K]+A[K+1]+A[K+2]+A[K+3];
C[J].I :=StrToInt(S);
end
else
C[J].Block[K] :=A[K];
end;
end;
end;
 
我想得到,用指针赋值的方法,C^直接指到一段内存上,(我说的可能不太清楚,因为我对指针不熟)
 
如果用指针的话
type
B=record
I:integer;
Block:Array[0..399] of Char;
end;
type
Buf=Array [0..4]of B;
PBuf = ^Buf;//定义指向Buf的指针类型
Var
A:Array[0..2020] of Char;
C:PBuf;
begin
C := @A;//这样就行了
end;

用Move(const Source
var Dest
Count: Integer) 这个函数也可以;
var
A:Array[0..2020] of Char;
C:Buf;//不用指针
begin
move(A,C,sizeof(C));
end
 
为什么不能给自己加分,我也解决了,方法和jps_exp的1、一样。
感谢jps_exp,火凤凰及卷起千堆雪tyn,
 
后退
顶部