
如果程式需要讀取大量數據可使用SQLite3關係數據庫,但如果只是讀寫小量文本數據,則使用文本一行行地保存文本更方便,擴展名最好改為.db下麵給設計思路.
讀取文本數據
- 以文本只讀方式打開文件_wfopen(),使用寬字符版路徑帶有中文也可打開,
- 讀取一行文本fgets()並進行處理
- 循環第二步,如返回NULL則讀取完畢.
- 關閉文件句柄fclose()
寫入文本數據
- 以文本寫入方式打開文件_wfopen(),模式使用w代表文件長度清零,否則使用a在文件尾寫入數據
- 寫入一行文本fputs()
- 寫入換行fputs(“\n”,stream);
- 循環第二第三步,如返回NULL則讀取完畢.
- 關閉文件句柄fclose()
讀取文本的C代碼
bool Read_DB()
{
FILE * stream=NULL; // 文件流句柄
char text[2056];
stream = _wfopen(L”text.dat”,L”r+t”);// 以文本方式打開文件
if(stream == NULL)
return false;// 無法打開文件
// 讀取一行
while(fgets(text,sizeof(text),stream) != NULL)
{ //去除字符串中最後面 “換行符” “空格”
TrimRight(text);
// 處理文本
// ……….
}
fclose(stream); // 關閉文件句柄
return true;
}
追加一行文本的C代碼
bool Save_DB(char * text)
{
FILE * stream=NULL; // 文件流句柄
// 以文本方式打開文件
stream = _wfopen(L”text.dat”,L”a+t”);
if(stream == NULL)
return false;// 無法打開文件
::fputs(text,stream);// 寫入數據
::fputs(“\n”,stream);// 換行
fclose(stream);// 關閉文件句柄
return true;
}