读书人

望高手们不吝赐教!该怎么解决

发布时间: 2012-03-05 11:54:02 作者: rapoo

望高手们不吝赐教!!!
刚到一家手机公司,要求做一个备忘录,就像一般手机里面用的那种,能够实现添加,删除,察看等功能。在考虑怎么做的时候,遇到几个难题,想在这里问问大家怎么解决,
用一个链表
typedef struct _NOTEKOOK_
{
UINT8 Index; //文本的索引值
UINT8 Length; //文本的长度
UINT8* Content; //保存备忘录的文本内容
struct _NOTEBOOK_ *pNext;
}NOTEBOOK;
#define MAXNUMBER 5

NOTEBOOK *g_Buffer
NOTEBOOK *g_Buffer;
NOTEBOOK *g_Temp;
NOTEBOOK *g_List;
NOTEBOOK *g_ListFree;
NOTEBOOK *g_ListFreeTail;
NOTEBOOK *g_ListTail;
NOTEBOOK g_ListBuffer[MAXNUMBER];
void InitialListBuffer()
{

UINT16 Num= 0;

g_List = g_ListTail = NULL;
memset(g_ListBuffer, 0x00, sizeof(NOTEBOOK ) * MAXNUMBER);
g_ListFree = g_ListFreeTail = g_ListBuffer;

while(Num < MAXNUMBER)
{
g_ListFreeTail-> pNext = ++g_ListFreeTail;
Num++;
}
g_ListFreeTail-> pNext = NULL;
}
INT32 AddNode()
{
if(g_Buffer != NULL)
{
g_Temp = g_ListFree;
g_ListFree = g_ListFree-> pNext;
memcpy(g_Temp, g_Buffer, sizeof(NOTEBOOK ));
if(g_List == NULL)
{
g_List = g_Temp;
g_List-> pNext = NULL;
g_ListTail = g_List;
}
else
{
g_Temp-> pNext = g_List;
g_List = g_Temp;
}
return 0;
}
else
return -1;

}

void main()
{
INT8 i;
NOTEBOOK *pTemp;

InitialListBuffer();
for (i = 0; i < 5; i++)
{
pTemp = Malloc(sizeof(NOTEBOOK));
Read_Flash_File( "XXX ", pTemp, sizeof(NOTEBOOK));
if (pTemp)
{
g_Buffer-> Content = pTemp-> Content;
g_Buffer-> Length = pTemp-> Length;
g_Buffer-> Index = i;
AddNode();
}
Free(pTemp);

}
}
我先贴部分程序
在初始化的时候,首先得从文件系统里面读出内容。
Read_Flash_File(“\..”, Buffer, sizeof(NOTEBOOK));
如果备忘录为空的话,应该Buffer为空,不为空的话,就能取出备忘录的内容,然后排成一个列表。可是读Buffer的时候,始终不为空。我想知道有没有其他的方法能够解决这个问题,望大家指点。现在我对做这个备忘录也没有一个很好的实现方案,如果大家有兴趣或者曾经做过的话,能不能介绍一些经验分享,提供一些方法?谢谢了





[解决办法]
Read_Flash_File函数的介绍呢?

读书人网 >C语言

热点推荐