修改小文件中特定字符串的程序
来源:互联网 发布:基于网格的聚类算法 编辑:程序博客网 时间:2024/05/17 04:11
#include<unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int chang_file_data(const char *src ,char *des ,char *fpath_in,char *fpath_out)
{
//小弟刚刚开始写程序,不太熟练,代码比较啰嗦,且耗费内存,见谅
// 处理小文件中的数据
// des 文件中存在,待被修改的字符串
// src 用来替换文件中字符串的数据
char *filebuff;
char *str_cmp;
// char *str_end; //所替换的字符串末尾地址
int file_len = 0; //文件大小
int len = 0; //开始写数据的文件长度
FILE *fp = fopen(fpath_in,"r+");
if(fp == NULL)
{
perror("fopen");
return -1;
}
fseek(fp,0,SEEK_END);
file_len = ftell(fp); //获得文件原始长度
filebuff = (char *)malloc(file_len + 1);
memset(filebuff,0,file_len +1);
rewind(fp);
fread(filebuff,1,file_len,fp);
fclose(fp);
//读取文件数据到内存中
//读取要修改的字符串的位置
str_cmp = strstr(filebuff,des);
//str_end = strstr(filebuff,"1194");
len = file_len - strlen(str_cmp);
FILE *fp_out = fopen(fpath_out,"w");
if(fp_out == NULL)
{
perror("fopen");
}
fwrite(filebuff,1,len,fp_out);
//已写入要修改的字符串以前的字符,进行要修改的字符串的填充
fwrite(src,1,strlen(src),fp_out);
//写入所修改字符串以后的数据到文件中
fwrite(filebuff+len+strlen(des),1,strlen(str_cmp)-strlen(des),fp_out);
fclose(fp_out);
return 0;
}
int main(int argc,char *argv[])
{
//以下示例,将文件pin.file 中的 等待更改” 修改为 “ 达成目标” ,输出新文件pout.file
int i = chang_file_data("达成目标","等待更改","pin.file","pout.file");
if(i != 0)
{
return -1;
}
return 0;
}
阅读全文
0 0
- 修改小文件中特定字符串的程序
- bat文件修改文件中特定字符串
- Python:统计特定文件夹中,特定文件代码行数的小程序
- 文件特定内容替换的小程序
- 【小程序】找出文件夹中特定后缀名的文件,并输出到txt
- 删除文件中特定字符串
- grep搜索子目录中包含某字符串的特定文件
- grep搜索子目录中包含某字符串的特定文件
- grep搜索子目录中包含某字符串的特定文件
- [bash]删除文件中含特定字符串的行
- grep搜索子目录中包含某字符串的特定文件
- grep搜索子目录中包含某字符串的特定文件
- grep搜索子目录中包含某字符串的特定文件
- grep搜索子目录中包含某字符串的特定文件
- [bash]删除文件中含特定字符串的行
- Java 从一个文件中读取某一个特定的字符串
- grep搜索子目录中包含某字符串的特定文件
- linux中搜索包含特定字符串的文件
- 《Java基础与案例开发详解》笔记(一)
- [CF750G]New Year and Binary Tree Paths
- python 安装 Django--python第一天学习
- CentOS7升级JDK
- POJ
- 修改小文件中特定字符串的程序
- ****dirname(__FILE__) 绝对路径问题一
- Hdu 6155 Subsequence Count 矩阵计算DP+线段树维护
- setsocket用法大全
- 关于BP你必须知道的十件事
- 立志向Keep进军!
- 22.平面列表
- 通用冒泡排序(回调函数)
- unity3d ulua framwork build打包后shader丢失的问题记录