⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 address.c

📁 palm的pocketc
💻 C
字号:
// Address Reader

// offsets of specific entries
#define LastName	0
#define FirstName	1
#define Company		2
#define Phone1		3
#define Phone2		4
#define Phone3		5
#define Phone4		6
#define Phone5		7
#define Address		8
#define City		9
#define State		10
#define ZipCode		11
#define Country		12
#define Title		13
#define Custom1		14
#define Custom2		15
#define Custom3		16
#define Custom4		17
#define Note		18
#define NumFields	19

readRecord(pointer pStrArray, int id) {
	int bitmask, i;
	
	dbrec(id);	
	dbread('i'); // read and throw away options
	bitmask = dbread('i');
	dbread('c'); // unused
	
	for (i=0;i<NumFields;i++) {
		if (bitmask & (1 << i))
			pStrArray[i] = dbread('s');
	}
}

writeRecord(pointer pStrArray, int id) {
	int bitmask, i;
	
	dbrec(id); // use id = -1 to add a new entry
	for (i=0;i<NumFields;i++) {
		if (pStrArray[i])
			bitmask = bitmask | (1 << i);
	}
	
	dbwrite(0);
	dbwrite(bitmask);
	dbwrite((char)0);
	
	for (i=0;i<NumFields;i++) {
		if (bitmask & (1 << i))
			dbwrite(pStrArray[i]);
	}
}

string addr[NumFields];

main() {
	int i;
	
	// read and display the 0th address record
	dbopen("AddressDB");
	readRecord(addr, 0);
	dbclose();	

	puts("Name:\t" + addr[LastName] + ", " + addr[FirstName] + "\n");
	puts("Addr:\t" + addr[Address] + "\n\t\t" + addr[City] + ", " +
		addr[State] + " " + addr[ZipCode]);
	
	for (i=0;i<NumFields;i++)
		addr[i] = "";
	
	// Insert a new address at the end of the database
	addr[FirstName] = "Jon";
	addr[LastName] = "Doe";
	addr[Phone1] = "(428) 555-8989";
	addr[City] = "Wallawalla";
	addr[State] = "WA";
	addr[ZipCode] = "78251";
	addr[Address] = "1287 63rd Pl";
	addr[Title] = "IS Guy";
	addr[Company] = "Conquer Inc";
	dbopen("AddressDB");
	writeRecord(addr, -1);
	dbclose();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -