Как разделить текстовый файл, содержащий ASCII-код SOH и ETX, на несколько файлов?
Например, текстовый файл с именем 001234.txt, который я назвал, содержит следующее:
SOH {ABCDXZY} ETX
SOH {ABCDXZY} ETX
SOH {ABCDXZY} ETX
Я хотел бы разбить один текстовый файл на несколько текстовых файлов для каждого кода ASCII, который начинается с SOH и заканчивается ETX.
Имя отдельного текстового файла должно быть разбито на 101234.txt, 111234.txt..etc, и каждый из них содержит один контент, который начинается с SOH и заканчивается ETX.
Я ценю любую помощь.
с использованием System.IO;
using System.Linq;
namespace ASCII_Split
{
class Program
{
static void Main(string[] args)
{
var txt = "";
const char soh = (char)1;
const char eox = (char)3;
var count = 1;
var pathToFile = @"C:\Temp\00599060.txt";
using (var sr = new StreamReader(pathToFile))
txt = sr.ReadToEnd();
while (txt.Contains(soh))
{
var outfil = Path.Combine(Path.GetDirectoryName(pathToFile), count.ToString("000"), "_fix.txt");
var eInd = txt.IndexOf(eox);
using (var sw = new StreamWriter(outfil, false))
{
sw.Write(txt.Substring(1, eInd - 1));
}
txt = txt.Substring(eInd + 1);
count++;
}
}
}
}