using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace 合併列印應用程式
{
class FileConverter
{
private string content;
public string[][] FileToTable(string Fname)
{
content = this.FileToString(Fname);
char itemSegment = '\n';
string[] rowTable = content.Split(itemSegment);
string[] elementSegment = new string[] { "\n", " ", " ", " ", " ", " " };
string[][] fullTable = new string[rowTable.Length][];
for (int i = 0; i <= rowTable.Length - 1; i++)
{
fullTable[i] = rowTable[i].Split(elementSegment, StringSplitOptions.RemoveEmptyEntries);
}
return fullTable;
}
public string FileToString(string Fname)
{
StreamReader SFile = new StreamReader(Fname, Encoding.Unicode);
content = SFile.ReadToEnd();
SFile.Close();
return content;
}
}
class MergPrinter
{
private string[] Result;
public MergPrinter(string strTemplate, string[][] strData)
{
MergPrintSetter setter = new MergPrintSetter(strTemplate, strData);
Result = setter.getResult();
}
public MergPrinter(string[][] strData, string strTemplate)
{
MergPrintSetter setter = new MergPrintSetter(strTemplate, strData);
Result = setter.getResult();
}
public void printMergInto(string Fname)
{
for (int Case = 0; Case < Result.Length; Case++)
{
StreamWriter ResultPut = new StreamWriter(Fname, true, Encoding.Unicode);
ResultPut.Write(Result[Case]);
this.putFiveEmpty(ResultPut);
ResultPut.Close();
}
}
private void putFiveEmpty(StreamWriter ResultFile)
{
for (int i = 1; i <= 5; i++)
ResultFile.WriteLine("");
}
}
class MergPrintSetter
{
private string Template;
private string[][] Data;
private string[] Result;
public MergPrintSetter( string strTemplate, string[][] strData )
{
Data = strData;
Template = strTemplate;
Result = new string[Data.Length - 1];
this.setResult();
}
public string[] getResult()
{
return Result;
}
private void setResult()
{
this.initializeResult();
for (int Item = 1; Item < Data.Length; Item++)
{
int Case = Item - 1;
Result[Case] = Template;
for (int element = 0; element < Data[Item].Length; element++)
{
Result[Case] = Result[Case].Replace(("${" + Data[0][element] + "}"), Data[Item][element]);
}
}
}
}
class Program
{
static void Main(string[] args)
{
string[][] DataTxt;
string TemplateTxt;
FileConverter open = new FileConverter();
DataTxt = open.FileToTable(args[1]);
TemplateTxt = open.FileToString(args[3]);
MergPrinter process = new MergPrinter(DataTxt, TemplateTxt);
process.printMergInto(args[5]);
}
}
}
全站熱搜
留言列表