資源簡介
有時需要將信息保存在Excel、Txt中,并且需要判斷去重操作,重復時進行覆蓋,不同時則在文件尾部寫入。該程序中split為字符串分割函數,利用fseek進行重寫數據的定位操作。

代碼片段和文件信息
#include
#include
#include
using?namespace?std;
vector?split(const?string&?s?char?c) //?字符串分割
{
vector?str;
typedef?string::size_type?size_tp;
size_tp?size?=?s.size();
size_tp?i?=?0?j?=?0;
while?(i? {
while?(s[i]?==?c)
++i;
j?=?i;
while?(s[j]?!=?c?&&?j?
if?(i?!=?j)?{
str.push_back(s.substr(i?j?-?i));
}
i?=?j;
}
return?str;
}
void?writeExcel()
{
char?buf[512]?=?{0};
int?line_len?=?0;
int?len?=?0;
int?res;
FILE?*pFile?=?nullptr;
pFile?=?fopen(“G:\\test.csv““r+“);??????//?Excel/txt相同,只需換后綴名即可
if?(!pFile)
{
pFile?=?fopen(“G:\\test.csv“?“w“); //?如果文件不存在,則寫入文件;如果文件存在,則用r+讀寫模式,w會覆蓋原來的內容,從開頭開始寫
}
char?*pTemp?=?fgets(buf?sizeof(buf)?pFile);
line_len?=?strlen(buf);???????????????????????????
if?(pTemp?==?nullptr)
{
fprintf(pFile?“%c%d\n“?‘a‘?0);
fprintf(pFile?“%c%d\n“?‘b‘?0);
fprintf(pFile?“%c%d\n“?‘c‘?0);
fprintf(pFile?“%c%d\n“?‘d‘?0);
}
else
{
? len?=?len?+?line_len?+?1; //?加1表示回車符
while?(pTemp)
{
vector?vecBuf?=?split(buf?‘‘);
const?char?*first?=?vecBuf[0].c_str();
if?(‘c‘?==?*first)
{
len?=?len?-?line_len?-?1?;
res?=?fseek(pFile?len?SEEK_SET); //?len?從頭開始到此為止長度
printf(“%d\n“?res);
fprintf(pFile?“%c%d\n“?‘d‘?1); //?重寫一行數據
break;
}
else
{
pTemp?=?fgets(buf?sizeof(buf)?pFile);
line_len?=?strlen(buf)?;
len?=?len?+?line_len?+?1;
}
}
if?(?nullptr?==?pTemp?)
{
fprintf(pFile?“%c%d\n“?‘s‘?1);
}
}
???????/*利用ftell進行定位,注意換行符*/
/*else
{
while?(pTemp)
{
vector?vecBuf?=?split(buf?‘\t‘);
const?char?*first?=?vecBuf[0].c_str();
if?(‘a‘?==?*first)
{
len?=?ftell(pFile)?-?line_len?-?1;????
res?=?fseek(pFile?len?SEEK_SET);
printf(“%d\n“?res);
fprintf(pFile?“%c\t%d\n“?‘d‘?1);
break;
}
else
{
pTemp?=?fgets(buf?sizeof(buf)?pFile);
line_len?=?strlen(buf);
len?+=?line_len;
}
if?(pTemp?==?nullptr)
{
fprintf(pFile?“%c\t%d\n“?‘s‘?1);
}
}
}*/
fclose(pFile);
}
int?main()
{
writeExcel();
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????28160??2018-08-07?21:11??Excel_Txt讀寫\.vs\ConsoleApplication1\v14\.suo
?????文件???????7423??2018-08-07?20:36??Excel_Txt讀寫\ConsoleApplication1\ConsoleApplication1.vcxproj
?????文件????????946??2018-06-20?10:59??Excel_Txt讀寫\ConsoleApplication1\ConsoleApplication1.vcxproj.filters
?????文件????????165??2018-06-20?11:05??Excel_Txt讀寫\ConsoleApplication1\ConsoleApplication1.vcxproj.user
?????文件???????1598??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\CL.command.1.tlog
?????文件??????14926??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\CL.read.1.tlog
?????文件????????752??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\CL.write.1.tlog
?????文件????????239??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\ConsoleApplication1.lastbuildstate
?????文件???????2650??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\li
?????文件???????2582??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\li
?????文件????????728??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\li
?????文件????????283??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleApplication1.log
?????文件?????270576??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\Excel.obj
?????文件?????268936??2018-06-20?11:18??Excel_Txt讀寫\ConsoleApplication1\Debug\excel.obj.enc
?????文件?????617472??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\vc140.idb
?????文件?????389120??2018-08-07?20:37??Excel_Txt讀寫\ConsoleApplication1\Debug\vc140.pdb
?????文件???????2353??2018-08-07?21:00??Excel_Txt讀寫\ConsoleApplication1\Excel.cpp
?????文件???????1339??2018-06-20?10:20??Excel_Txt讀寫\ConsoleApplication1.sln
?????文件???19161088??2018-08-07?21:11??Excel_Txt讀寫\ConsoleApplication1.VC.db
?????文件??????81920??2018-08-07?20:37??Excel_Txt讀寫\Debug\ConsoleApplication1.exe
?????文件?????472028??2018-08-07?20:37??Excel_Txt讀寫\Debug\ConsoleApplication1.ilk
?????文件????4550656??2018-08-07?20:37??Excel_Txt讀寫\Debug\ConsoleApplication1.pdb
?????目錄??????????0??2018-08-07?21:12??Excel_Txt讀寫\.vs\ConsoleApplication1\v14
?????目錄??????????0??2018-08-07?21:12??Excel_Txt讀寫\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog
?????目錄??????????0??2018-08-07?21:12??Excel_Txt讀寫\.vs\ConsoleApplication1
?????目錄??????????0??2018-08-07?21:12??Excel_Txt讀寫\ConsoleApplication1\Debug
????...D.H.?????????0??2018-08-07?21:12??Excel_Txt讀寫\.vs
?????目錄??????????0??2018-08-07?21:12??Excel_Txt讀寫\ConsoleApplication1
?????目錄??????????0??2018-08-07?21:12??Excel_Txt讀寫\Debug
?????目錄??????????0??2018-08-07?21:12??Excel_Txt讀寫
............此處省略3個文件信息
- 上一篇:FIR302B編程器固件
- 下一篇:云南省一級B類考試模擬系統解壓密碼:ssl163
評論
共有 條評論