白痴的分割、合并文件

 白痴的分割文件^V^

#include<iostream>
#include<fstream>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
	ifstream infile;
	ofstream outfile;
	string s,fileName;
	int num, i,m,n,xh;;
	int getLineNumber(string fb="");
	string fn = "name.csv";
	m = getLineNumber(fn);
	string getFileName(int i, string fn = "");
	infile.open("name.csv");
	cout << "请输入要分割文件的序号:" << endl;
	cin >> xh;
	for (i = 1; i <= m; i++)
	{  
		getline(infile, fileName);
		if (i==xh)
		break;
	}
	infile.close();
	n = getLineNumber(fileName);
	cout << "文件总行数:" << n << endl;
	//根据总行数决定分割为几个文件
	cout << "输入分割行数:";
	cin >> num;
	int list = n / num;
	if (n % num != 0)
		list = list + 1;
	cout << "分割为" << list << "个文件" << endl;
	cout << "输入储存小文件名称的文件名:";
	cin >> fileName;
	switch (list)
	{
	case 1:outfile.open(getFileName(1, fileName));
		outfile.close(); break;
	case 2:outfile.open(getFileName(1, fileName)); outfile.close();
		outfile.open(getFileName(2, fileName)); outfile.close(); break;
	case 3:outfile.open(getFileName(1, fileName)); outfile.close();
		outfile.open(getFileName(2, fileName)); outfile.close();
		outfile.open(getFileName(3, fileName)); outfile.close(); break;
	case 4:outfile.open(getFileName(1, fileName)); outfile.close();
		outfile.open(getFileName(2, fileName)); outfile.close();
		outfile.open(getFileName(3, fileName)); outfile.close();
		outfile.open(getFileName(4, fileName)); outfile.close(); break;
	/*case 5:outfile.open(getFileName(1, "fileName")); outfile.close();
		outfile.open(getFileName(2, "fileName")); outfile.close();
		outfile.open(getFileName(3, "fileName")); outfile.close();
		outfile.open(getFileName(4, "fileName")); outfile.close();
		outfile.open(getFileName(5, "fileName")); outfile.close(); break;*/
	default:cout << "超出设定分割文件数,分割错误,请修改代码" << endl;
	}
	//分割
	string fileName_s = getFileName(xh, "name.csv");//要分割的文件名
	infile.open(fileName_s);
	for (i = 1; i <= n; i++)
	{
		getline(infile, s);
		if (i <= num)
		{
			int j = 1;
			string fileName_s = getFileName(j,fileName);
			outfile.open(fileName_s,ios::app);
			outfile << s << endl;
			outfile.close();
		}

		else if (i > num&&i <= 2 * num)
		{
			int j = 2;
			string fileName_s = getFileName(j, fileName);
			outfile.open(fileName_s,ios::app);
			outfile << s << endl;
			outfile.close();
		}

		else if (i > 2 * num&&i <= 3 * num)
		{
			int j = 3;
			string fileName_s = getFileName(j, fileName);
			outfile.open(fileName_s,ios::app);
			outfile << s << endl;
			outfile.close();
		}
		else if(i>3*num&&i<=4*num)
		{
			int j = 4;
			string fileName_s = getFileName(j, fileName);
			outfile.open(fileName_s,ios::app);
			outfile << s << endl;
			outfile.close();

		}
		/*else if (i > 4 * num&&i <= 5 * num)
		{
			int j = 5;
			string fileName_s = getFileName(j, "name_s.csv");
			outfile.open(fileName_s, ios::app);
			outfile << s << endl;
			outfile.close();

		}*/
	}
	infile.close();
	system("pause");
	return 0;

}
//计算文件总行数
int getLineNumber(string fn="")
{
	int m=0;
	string fileName;
	ifstream infile;
	infile.open(fn);
	if (infile.fail())//判断文件是否存在
	{
		cout << "读取文件失败";
	}
	else
	{
		while (getline(infile, fileName))
		{
			m++;//m为要分割文件数量
		}
	}
	infile.close();
	return m;
}
//获取文件名
string getFileName(int i, string fn = "")
{
	ifstream infile;
	string fileName;
	infile.open(fn);
	int getLineNumber(string fn = "");
	int m = getLineNumber(fn);
	for (int j = 1; j <= m; j++)
	{
		getline(infile, fileName);
		if (j==i)
			break;
	}
	infile.close();
	return fileName;
}

白痴的合并文件

include<iostream>
#include<fstream>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
	ifstream infile;
	ofstream outfile;
	string s, fileName;
	int num, i, m, n, xh;;
	int getLineNumber(string fb = "");
	string fn = "name.csv";
	m = getLineNumber(fn);
	string getFileName(int i, string fn = "");
	infile.open("name.csv");
	cout << "请输入要合并为哪个文件的序号:" << endl;
	cin >> xh;
	for (i = 1; i <= m; i++)
	{
		getline(infile, fileName);
		if (i == xh)
			break;
	}
	infile.close();
	outfile.open(fileName);
	outfile.close();
	cout << "要合并的文件个数为:";
	cin >> num;
	for(i=1;i<=num;i++)
	{ 
	string fileName_s = getFileName(i, "name_s.csv");//要合并的文件
	infile.open(fileName_s);
	n = getLineNumber(fileName_s);
	cout << "yes";
	for (int j = 1; j <= n; j++)
	{
		getline(infile, s);
		outfile.open(fileName,ios::app);
			outfile << s << endl;
			outfile.close();
		}
	infile.close();
	}
	system("pause");
	return 0;

}
//计算文件总行数
int getLineNumber(string fn = "")
{
	int m = 0;
	string fileName;
	ifstream infile;
	infile.open(fn);
	if (infile.fail())//判断文件是否存在
	{
		cout << "读取文件失败";
	}
	else
	{
		while (getline(infile, fileName))
		{
			m++;//m为要分割文件数量
		}
	}
	infile.close();
	return m;
}
//获取文件名
string getFileName(int i, string fn = "")
{
	ifstream infile;
	string fileName;
	infile.open(fn);
	int getLineNumber(string fn = "");
	int m = getLineNumber(fn);
	for (int j = 1; j <= m; j++)
	{
		getline(infile, fileName);
		if (j == i)
			break;
	}
	infile.close();
	return fileName;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嗨!对于MyBatis Plus代码生成器,我可以给你一些教程的建议。首先,你需要确保你的项目中已经正确地集成了MyBatis Plus框架。 接下来,你可以按照以下步骤使用MyBatis Plus代码生成器: 1. 在你的项目中创建一个用于生成代码的模块或者包。 2. 在该模块(或包)中添加MyBatis Plus的相关依赖,例如`mybatis-plus-generator`和`mybatis-plus-boot-starter`。 3. 创建一个Java类,作为代码生成器的入口类。 4. 在该入口类中配置代码生成器的参数,例如数据库连接信息、作者名称、要生成的表等。 5. 使用代码生成器的API生成代码,例如调用`AutoGenerator.execute()`方法。 下面是一个简单的示例: ```java public class CodeGenerator { public static void main(String[] args) { // 创建代码生成器 AutoGenerator generator = new AutoGenerator(); // 配置全局策略 GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); globalConfig.setAuthor("Your Name"); // ... 其他配置 // 配置数据源 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mydatabase"); dataSourceConfig.setDriverName("com.mysql.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("password"); // ... 其他配置 // 配置包信息 PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("com.example.myproject"); // ... 其他配置 // 配置模板引擎 TemplateConfig templateConfig = new TemplateConfig(); // ... 其他配置 // 将配置添加到代码生成器中 generator.setGlobalConfig(globalConfig); generator.setDataSource(dataSourceConfig); generator.setPackageInfo(packageConfig); generator.setTemplate(templateConfig); // 执行生成代码 generator.execute(); } } ``` 这只是一个简单示例,你可以根据自己的需求进行配置和定制。你还可以参考MyBatis Plus官方文档中的更多详细信息,以便深入了解代码生成器的使用方法。 希望这些信息能对你有所帮助!如果你有任何进一步的问题,请随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值