fork download
  1. program ideone;
  2.  
  3. {$MODE OBJFPC}{$LONGSTRINGS ON}
  4.  
  5. type
  6. TRecString = String[20];
  7. PRecString = ^TRecString;
  8.  
  9. type
  10. TSomeRecord = packed record
  11. Name: String[20];
  12. Surename: String[20];
  13. Address: String[20];
  14. Age: UInt8;
  15. Sex: UInt8;
  16. ID: UInt8;
  17. end;
  18.  
  19. procedure PrintRecord(const ARect: TSomeRecord);
  20. var
  21. Ptr: Pointer;
  22. I: Integer;
  23. begin
  24. Ptr := @ARect;
  25.  
  26. for I := 0 to 2 do
  27. begin
  28. WriteLn('"', PRecString(Ptr)^, '"');
  29. Ptr += SizeOf(TRecString);
  30. end;
  31.  
  32. for I := 0 to 2 do
  33. begin
  34. WriteLn('"', PUInt8(Ptr)^, '"');
  35. Ptr += SizeOf(UInt8);
  36. end;
  37. end;
  38.  
  39. var
  40. Some: TSomeRecord;
  41. begin
  42. Some.Name := 'furious';
  43. Some.Surename := 'programming';
  44. Some.Address := '4programmers.net';
  45. Some.Age := 64;
  46. Some.Sex := 1;
  47. Some.ID := 128;
  48.  
  49. PrintRecord(Some);
  50. end.
  51.  
Success #stdin #stdout 0s 4508KB
stdin
Standard input is empty
stdout
"furious"
"programming"
"4programmers.net"
"64"
"1"
"128"