指针的第二个数据的读取

Program a(input, output);
var
g               : file of longint;
buffer, buf     : ^char;
i, l            : longint;
f               : file;
r               : word;

{Procedure GetLongint(Var Buffer; ID : Longint; Var L : Longint);
          Begin
          Move(PChar(Buffer)[ID * 4], L, 4);
          End;
}
Begin
assign(g, 'temp.dat');
rewrite(g);
for i := 1 to 100 do
    begin
    write(g, i);
    end;
close(g);

assign(f, 'temp.dat');
reset(f,1);

getmem(buffer, 4 * 100);
blockread(f,buffer^, sizeof(i) * 100, r);

close(f);

writeln('--------------');
i := 3;
buf := ptr(seg(buffer^), ofs(buffer^) + (i - 1) * sizeof(LongInt));
move(buf^, l, 4);        {Get Value}
writeln(l);
l := 10;

move(l, buf^, 4);        {Set Value}
move(buf^, l, 4);        {Get Value}

writeln(l);
freemem(buffer, 4 * 120);
End.

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值