• 大小: 4.52MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-16
  • 语言: 其他
  • 标签: c语言  文件读写  

资源简介

有时需要将信息保存在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 < size)
{
while (s[i] == c)
++i;
j = i;
while (s[j] != c && j < size)   ++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\link.command.1.tlog

     文件       2582  2018-08-07 20:37  Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\link.read.1.tlog

     文件        728  2018-08-07 20:37  Excel_Txt读写\ConsoleApplication1\Debug\ConsoleA.68352FAC.tlog\link.write.1.tlog

     文件        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个文件信息

评论

共有 条评论