问个字节操作的低级问题. 回复内容

1 楼gzmhero(hihihi)回复于 2005-04-21 20:19:59

function   addjy(var   Buf;   Len:   Integer):   string;  
  begin  
          pChar(integer(@Buf)+len)^:='a';  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
          Test:array[0..100]   of   char;  
  begin  
          Test:='cccc';  
          addjy(Test,2);  
          Label1.Caption:=test;  
  end;  
  Top

2 楼hylyz(无情)回复于 2005-04-21 21:02:38

我要读某个字节的数值怎么办?  
   
  不好意思,习惯了VB的字节操作,对DEPHI的字节操作不熟悉.Top

3 楼hylyz(无情)回复于 2005-04-21 21:13:04

就是说要对BUF内的某个字节进行读数值和写数值操作.Top

4 楼gzmhero(hihihi)回复于 2005-04-21 21:17:05

赋值是这样:pos   为buf的指定位置  
          pChar(integer(@Buf)+pos)^:='a';  
  读:  
        a:char;  
        a:=pChar(integer(@Buf)+pos)^;Top

5 楼hylyz(无情)回复于 2005-04-21 21:20:17

我要写数值啊,不是字符怎么吧?如在buf的pos位置写入值为1或200Top

6 楼hylyz(无情)回复于 2005-04-21 21:23:47

是否为:  
   
  if   pbyte(integer(@Buf)+pos)^=39   then   pbyte(integer(@Buf)+pos)^:=1Top

7 楼gzmhero(hihihi)回复于 2005-04-21 21:26:43

对。转换成对应的指针就可以了。Top

8 楼hylyz(无情)回复于 2005-04-21 21:32:36

非常感谢!Top