Team Ai
Datasetpublic

hschumann2/TempleOS-Source-Code

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes847downloads
DataBase.txt66 linesDownload Raw Back to Dsk
1 2#define DB_FILENAME     "~/DataBaseDemo.BIN"3#define DB_ACCT_MAX     1004#define DB_ACCT_BLKS    15 6class Acct7{//Use <CTRL-l> to help generate formats.8  U8 name[32] format "$DA-P,LEN=32,A=\"Name:%s\"$\n";9  U8 addr[64] format "$DA-P,LEN=64,A=\"Addr:%s\"$\n";10  U8 pad[DB_ACCT_BLKS*BLK_SIZE-64-32];11};12 13U0 InitDatabase()14{ //Write new contiguous file15  CFile *f=FOpen(DB_FILENAME,"w",DB_ACCT_MAX*DB_ACCT_BLKS);16  FClose(f);17}18 19U0 WriteAcct()20{21  CFile *f;22  Acct a;23  I64 acctnum;24 25  acctnum=GetI64("Acct #",-1);26  if (0<=acctnum<DB_ACCT_MAX) {27    MemSet(&a,0,BLK_SIZE);28    if (DocForm(&a)) {29      f=FOpen(DB_FILENAME,"w+");30      FBlkWrite(f,&a,acctnum*DB_ACCT_BLKS,DB_ACCT_BLKS);31      FClose(f);32    }33  }34}35 36U0 ReadAcct()37{38  CFile *f;39  Acct a;40  I64 acctnum;41 42  acctnum=GetI64("Acct #",-1);43  if (0<=acctnum<DB_ACCT_MAX) {44    f=FOpen(DB_FILENAME,"r");45    FBlkRead(f,&a,acctnum*DB_ACCT_BLKS,DB_ACCT_BLKS);46    FClose(f);47    ClassRep(&a);48  }49}50 51U0 DatabaseDemo()52{53  I64 ch;54  if (!FileFind(DB_FILENAME))55    InitDatabase;56  do {57    "$GREEN$R$FG$ead acct, $GREEN$W$FG$rite acct or $GREEN$<SHIFT-ESC>$FG$:";58    ch=ToUpper(GetChar);59    '\n';60    if (ch=='R') ReadAcct;61    if (ch=='W') WriteAcct;62  } while (ch!=CH_SHIFT_ESC && ch!=CH_ESC);63}64 65DatabaseDemo;66