作者itoc.bbs@xeon.tfcis.org (test), 看板: plan
標題Re: [閒聊] 好開心喔~
時間XEON (Fri Aug 9 01:00:02 2002)
以要加上 feeling 為例子
: transacct.c
NEW 加上一個新欄位 feeling
OLD 是舊的 struct ACCT
struct NEW /* 要和新版程式 struct 一樣 */
{
int userno; /* unique positive code */
char userid[IDLEN + 1]; /* ID */
char passwd[PASSLEN]; /* 密碼 */
char realname[20]; /* 真實姓名 */
char username[24]; /* 暱稱 */
+ char feeling[5]; /* 心情 */
usint userlevel; /* 權限 */
usint ufo; /* habit */
uschar signature; /* 預設簽名檔 */
char year; /* 生日(民國年) */
char month; /* 生日(月) */
char day; /* 生日(日) */
char sex; /* 性別 */
int money; /* 銀幣 */
int gold; /* 金幣(擴充用) */
int numlogins; /* 上站次數 */
int numposts; /* 發表次數 */
int numemails; /* 寄發 Inetrnet E-mail 次數 */
time_t firstlogin; /* 第一次上站時間 */
time_t lastlogin; /* 上一次上站時間 */
time_t tcheck; /* 上次 check 信箱/好友名單的時間 */
time_t tvalid; /* 通過認證的時間 */
char lasthost[30]; /* 上次登入來源 */
char email[60]; /* 目前登記的電子信箱 */
};
struct OLD /* 要和舊版程式 struct 一樣 */
{
int userno; /* unique positive code */
char userid[IDLEN + 1]; /* ID */
char passwd[PASSLEN]; /* 密碼 */
char realname[20]; /* 真實姓名 */
char username[24]; /* 暱稱 */
usint userlevel; /* 權限 */
usint ufo; /* habit */
uschar signature; /* 預設簽名檔 */
char year; /* 生日(民國年) */
char month; /* 生日(月) */
char day; /* 生日(日) */
char sex; /* 性別 */
int money; /* 銀幣 */
int gold; /* 金幣(擴充用) */
int numlogins; /* 上站次數 */
int numposts; /* 發表次數 */
int numemails; /* 寄發 Inetrnet E-mail 次數 */
time_t firstlogin; /* 第一次上站時間 */
time_t lastlogin; /* 上一次上站時間 */
time_t tcheck; /* 上次 check 信箱/好友名單的時間 */
time_t tvalid; /* 通過認證的時間 */
char lasthost[30]; /* 上次登入來源 */
char email[60]; /* 目前登記的電子信箱 */
};
: transaccct.c trans_acct()
static void
trans_acct(old, new)
OLD *old;
NEW *new;
{
memset(new, 0, sizeof(NEW));
new->userno = old->userno;
str_ncpy(new->userid, old->userid, sizeof(new->userid));
strcpy(new->passwd, old->passwd);
str_ncpy(new->realname, old->realname, sizeof(new->realname));
str_ncpy(new->username, old->username, sizeof(new->username));
+ str_ncpy(new->feeling, "快樂", sizeof(new->feeling)); /* 給初始值 */
new->userlevel = old->userlevel;
new->ufo = transfer_ufo(old->ufo); /* itoc.010917: ufo 欄位未必一樣 */
new->signature = old->signature;
- new->year = 0; /* 給初始值 */
- new->month = 0;
- new->day = 0;
- new->sex = 0;
- new->money = 100;
- new->gold = 1;
+ new->year = old->year;
+ new->month = old->month;
+ new->day = old->day;
+ new->sex = old->sex;
+ new->money = old->money;
+ new->money = old->gold;
new->numlogins = old->numlogins;
new->numposts = old->numposts;
new->numemails = old->numemail;
new->firstlogin = old->firstlogin;
new->lastlogin = old->lastlogin;
new->tcheck = old->tcheck;
new->tvalid = old->tvalid;
str_ncpy(new->lasthost, old->lasthost, sizeof(new->lasthost));
str_ncpy(new->email, old->email, sizeof(new->email));
}
> ---------------------------------------------- <
同理,發行新的幣制,也是用 transacct
struct NEW 和 struct OLD 都寫成和 struct ACCT 一樣
然後 main() 裡面改這句
new.money = old.money / 40000;
--
□ Origin: 動力核心 xeon.tfcis.org □ From: itoc.Dorm-GD2.NCTU.edu.tw精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻