1.C语言如何对文本进行批量修改添加
代码如下:
#include <stdio.h>
#define MAX 20 // 每行最大字符数
#define MAX_LINE 1000 // 文件最大行数
char lines[MAX_LINE][MAX];
int main()
{
int i, count = 0;
// 打开文件 abc.txt
FILE *pf = fopen("d:\\abc.txt", "r+");
// 读取文件内容到 lines 中
while (!feof(pf)) {
fscanf(pf, "%s", lines[count++]);
}
// 移动文件指针到文件开始
fseek(pf, 0, SEEK_SET);
// 修改文本并保存到文件中
for (i = 0; i < count; i++) {
fprintf(pf, "12月日期%s号\n", lines[i]);
}
// 关闭文件
fclose(pf);
return 0;
}运行结果:
2.C语言写一个批量文件改名器
程序如下:
用VC6.0或TC2.0编译
使用时,只要将大批要修改的文件的名字放到oldName中,新名字放到newName中即可,此时适当修改MAX的值.
#include<stdio.h>
#include<conio.h>
#define MAX 3/*最大的文件数目,每个文件对应一个名字*/
/*文件的原来名字,这里是当前目录下的,也可以不是当前目录,写绝对路径就可以了,如:D:\abc\aa.txt(前提是该文件存在)*/
unsigned char *oldName[MAX]={"aaa.txt","bbb.txt","ccc.txt"};
/*文件改后的名字*/
unsigned char *newName[MAX]={"111.txt","222.txt","333.txt"};
main()
{
int i;
int flag=0;
for(i=0;i<MAX;i++)
{
if(rename(oldName[i],newName[i]))/*改文件名,如果文件不存在就退出*/
{
printf("找不到原文件\n");
flag=1;
break;
}
}
if(!flag)
printf("改名全部成功\n");
getch();
}
3.C语言写一个批量文件改名器
程序如下:用VC6.0或TC2.0编译使用时,只要将大批要修改的文件的名字放到oldName中,新名字放到newName中即可,此时适当修改MAX的值.#include#include#define MAX 3/*最大的文件数目,每个文件对应一个名字*//*文件的原来名字,这里是当前目录下的,也可以不是当前目录,写绝对路径就可以了,如:D:\abc\aa.txt(前提是该文件存在)*/unsigned char *oldName[MAX]={"aaa.txt","bbb.txt","ccc.txt"};/*文件改后的名字*/unsigned char *newName[MAX]={"111.txt","222.txt","333.txt"};main(){ int i; int flag=0; for(i=0;i { if(rename(oldName[i],newName[i]))/*改文件名,如果文件不存在就退出*/ { printf("找不到原文件\n"); flag=1; break; } } if(!flag) printf("改名全部成功\n"); getch();}。
4.如何用批处理/C语言等 对多个文本内容进行批量替换
替换倒是没问题
但是你给出的 没有规律啊
#Music(DN_02.ogg) -----playfile("sounds/DN_02.ogg",1);
#SoundGr(0,SE001.ogg)----playfile("sounds/SE001.ogg",1);
这个就是 #xxx(文件)------playfile("sounds/文件",1); 模式
后面的就看不出来了。。.
[!]替换#Page
这个用变量代换就行
5.跪求程序设计:写一个批量修改文件名的程序(最好用JAVA,C语言,
public class ReNameFile {
public static String path = "输入你要重命名的磁盘或文件夹路径";
public static void main(String[] args){
reName(path);
}
public static void reName(String filePath){
File rootFile = new File(filePath);
if(rootFile.isDirectory()){
File files[] = rootFile.listFiles();
if(files!=null && files.length>0){
for(int i=0;i<files.length;i++){
File f = files[i];
if(f.isDirectory()){
reName(f.getAbsolutePath());
}else{
f.renameTo(new File("输入你要重命名的名字"));//记得将路径也输入
}
}
}
}else{
rootFile.renameTo(new File("输入你要重命名的名字"));//记得将路径也输入
}
}
}
如果不明白,请继续提问。
6.用C语言批量更改文件名
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <string.h>
#include <iconv.h>
#include <errno.h>
/*int to_iconv(char *in,size_t in_bytes,char *out,size_t out_bytes,
const char *from,const char *to)*/
int to_iconv(char *in,char *out,size_t out_bytes,const char *from,const char *to)
{
iconv_t cd;
size_t in_bytes=strlen(in);
//size_t out_bytes;
if((cd=iconv_open(to,from)) == (iconv_t)-1)
{
perror("iconv_open");
return -1;
}
if(iconv(cd,&in,&in_bytes,&out,&out_bytes) == -1)
{
perror("iconv");
return -1;
}
iconv_close(cd);
return 0;
}
void read_and_iconv(char *path,const char *from,const char *to)
{
DIR *dirp;
struct dirent *dir;
struct stat buf;
char temp[512]; //用于保存转换后的文件名称
if((dirp=opendir(path)) == NULL) //读取文件夹
{
perror("opendir");
return;
}
chdir(path); //进入到该文件夹内部
while(dir=readdir(dirp)) //读取该文件夹下所有文件
{
if((strcmp(dir->d_name,".") == 0) || (strcmp(dir->d_name,"..") == 0))
//过滤掉.以及..文件夹,不然会死循环的
continue;
bzero(temp,sizeof(temp));
to_iconv(dir->d_name,temp,sizeof(temp),from,to); //进行编码转换
rename(dir->d_name,temp); //进行重命名
printf("rename %s to %s\n",dir->d_name,temp);
stat(temp,&buf);
if(S_ISDIR(buf.st_mode)) //判断当前读取的文件是否为文件夹
{
read_and_iconv(temp,from,to); //如果是则递归处理
chdir(".."); //处理完成后一定要记得返回上一层目录哦,不然其它文件就无法处理了
}
}
closedir(dirp);
}
int main(int argc,char **argv)
{
read_and_iconv(argv[1],argv[2],argv[3]);
/*第一个参数是要转换的文件夹所在的文件夹名称
*第二个参数是文件名称所使用的编码(这里为GBK)
*第三个参数是要转换成何种编码(这里为UTF-8)
*/
return 0;
}