I`ve just developed a little application that is able to merge text files (for example textuisystem_100.txt - textuisystem_99900) into a single file.
a few years ago Joymax decided to split these text files up probably to reduce traffic during update processes however our client's doesn't support that.
srFileMerge doesn't have a custom split interval added yet (for example to use ItemData) but since I include the source feel free to add it
HOW TO USE:
copy all related txt files into the input folder, execute srFileMerge and enter the "main" filename (for example textuisystem.txt)
SRC:
Code:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace srFileMerge
{
internal class Program
{
private static void Main()
{
CreateDirectories(new[] {"./input", "./output"});
var fileName = GetFileName();
MergeFiles(GetFileList(fileName), fileName);
Console.WriteLine("PRESS ANY KEY TO EXIT!");
Console.ReadKey();
}
private static void CreateDirectories(IEnumerable<string> directories)
{
try
{
foreach (var directory in directories)
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
private static string GetFileName()
{
Console.Write("ENTER MAIN FILENAME: ");
var fileName = Console.ReadLine();
if (!File.Exists($"./input/{fileName}"))
{
Console.WriteLine("FILE DOES NOT EXISTS IN INPUT FOLDER, RETRY!");
fileName = GetFileName();
}
return fileName;
}
private static string[] GetFileList(string fileName)
{
try
{
return File.ReadAllLines($"./input/{fileName}");
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
private static void MergeFiles(IEnumerable<string> fileList, string fileName)
{
try
{
var outputFile = new List<string>();
foreach (var file in fileList) outputFile.AddRange(File.ReadAllLines($"./input/{file}"));
File.WriteAllLines($"./output/{fileName.ToLower()}", outputFile, Encoding.Unicode);
Console.WriteLine("FILE HAS BEEN SUCCESSFULLY MERGED!");
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
}






