上次你给偶的例子:
abc = packet record
  case byte of
    c :Cardinal;
    ch :array [0..3] of char;
end;
说就可以在C填入一个Cardinal的数据,然后ch就是得到每个byte的值,
偶在Delphi里面死活调试都说是语法错误,
你就帮人帮到底,调试调到西,看看
应该放在pas的哪段儿,还有是不是有什么单词错误什么标点错误的....
谢了

解决方案 »

  1.   

    type abc = packed record
      case byte of
        0: (c:Cardinal); 
        1: (ch:array[0..3] of char) ;
      end ;
      

  2.   

    少个end!
    type abc = packed record
      case byte of
        0: c:Cardinal) 
        1: ch:array[0..3] of char ;
      end ;
    end;
      

  3.   

    看错,不好意思!
    type abc = packed record
      case byte of
        0: (c:Cardinal);
        1: (ch:array[0..3] of char) ;
      end ;
      

  4.   

    type recordTypeName = record
      fieldList1: type1;
      ...
      fieldListn: typen;
      case tag: ordinalType of
        constantList1: (variant1);
        ...
      constantListn: (variantn);
    end;你可以定义任何可变结构:
    1.依据一个结构元素之值
    type 
      TEmployee = record 
        FirstName, LastName: string[40];
        BirthDate: TDate;
        case Salaried: Boolean of
          True: (AnnualSalary: Currency);
          False: (HourlyWage: Currency);
      end;2.依据一个类型
    type
      TShapeList = (Rectangle, Triangle, Circle, Ellipse, Other);
      TFigure = record
        case TShapeList of
          Rectangle: (Height, Width: Real);
          Triangle: (Side1, Side2, Angle: Real);
          Circle: (Radius: Real);
          Ellipse, Other: ();
      end;
      
      abc = record
      case byte of
        0: (c:Cardinal);
        1: (ch:array[0..3] of char) ;
      end ;3.使用:
    var
      A:TEmployee;
      B:TFigure;
      X:ABC;
    begin
      A.Salaried := TRUE;
      A.AnnualSalary := 1000.12;
      Caption := FloatToStr(A.HourlyWage);  B.Height := 1000;
      B.Width := 200;
      
      X.c := 'A';
      X.ch[1] := 'B';
      X.ch[2] := 'C';end;
      

  5.   

    我已经搞清了这个东西的用法了.
    偶看来最有用的就是把个体不同大小的数据,用左边对齐,总长度必须一样,等于是给一段内存伙这用.
    Okay,Linux2001也没有来,我就结帖算了,算他霉气
      

  6.   

    PS:看了borlandor(五角大名)的Post,还有另外的用处,
    偶先拷贝收藏了,没活了再看