Computer Chess Club Archives


Search

Terms

Messages

Subject: Playerbase format (update)

Author: Michel Langeveld

Date: 21:15:28 07/18/99


datarecord(97 bytes)
 4  bytes: recordnumber to left  player (FF FF FF FF = no left)
 4  bytes: recordnumber to right player (FF FF FF FF = no right)
 1  byte : ??? can be [0x00/0x01/0xFF]
25  bytes: player lastname and 0x00 at the end
20  bytes: player surename and 0x00 at the end
 3  bytes: date of birth (see date-example)
 1  byte : 0x00 [not used in CB7]
 3  bytes: date of decease (see date-example)
 1  byte : 0x00 [not used in CB7]
 1  byte : title (see title-example)
 1  byte : 0x00 [not used in CB7]
 1  byte : Country of residence (see country-example)
 1  byte : 0x00 [not used in CB7]
 1  byte : Country of of birth (see country-example) [not used in CB7]
 1  byte : 0x00 [not used in CB7]
 1  bytes: sex of the player (0x00 = MALE, 0x01 = FEMALE)
 4  bytes: recordnumber to elobase(playbase.elo)
           FF FF FF FF = no elorating
 4  bytes: recordnumber to picture-base(playbase.mfm)
           ???exact calculation not known
           FF FF FF FF = no pictures
 4  bytes: ???recordnumber to other datafiles
           ???sometimes FF FF FF FF =
 4  bytes: ???recordnumber to other datafiles
           ???Mostly the same as former field
           ???I've seen values like: 03 00 00 01
 3  bytes: date of last modification of this player (see dateexample)
 1  byte : 0x00 [not used in CB7]
 8  bytes: FF FF FF FF FF FF FF FF

Updated ConvertByte2Title function (VIP added)
function ConvertByte2Title(b : byte) : string;
var tmp : string;
begin
  tmp := '';
  {processing highnible}
  if b and $80 = $80 then tmp := tmp + ', WCH';
  if b and $40 = $40 then tmp := tmp + ', WWCH';
  if b and $30 = $30 then
     tmp := tmp + ', GM'
  else
  begin
     if b and $20 = $20 then tmp := tmp + ', IM';
     if b and $10 = $10 then tmp := tmp + ', FM';
  end;

  {processing lownible}
  if b and $0c = $0c then
     tmp := tmp + ', WGM'
  else
  begin
     if b and $08 = $08 then tmp := tmp + ', WIM';
     if b and $04 = $04 then tmp := tmp + ', WFM';
  end;
  if b and $02 = $02 then tmp := tmp + ', HGM';
  if b and $01 = $01 then tmp := tmp + ', VIP';

  if tmp <> '' then
     delete(tmp, 1, 2)
  else
     tmp := 'NOTITLE';

  ConvertByte2Title := tmp;
end;



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.