У меня есть два текстовых файла - они оба содержат одну и ту же информацию, но доступны в двух разных форматах.Дифференциация между двумя текстовыми файлами, имеющими один и тот же контент, но в другом формате с использованием программы C#
Формат 1 имеет разрывы строк и выглядит хорошо отформатированным. Формат 2 «кажется» непрерывным, но на самом деле он также имеет разрывы строк, но разрыв строки представляется очень странным образом.
https://www.dropbox.com/sh/ljlqen94a5cwza2/AAAOcuYU_EDnSLiNPRP_CDbga?dl=0
Пожалуйста, обратитесь к отсоединяемым (LineBreak.dat и NoLineBreak.dat) В последнем файл, есть разрывы строк, но не видны - выглядит как какое-то преобразование на данном изменились представление , Если вы начнете отсчет с первой позиции (начните отсчет с i = 0), используя правый курсор на клавиатуре, то при i = 19 вы обнаружите, что курсор застревает для одного нажатия - вам нужно дважды нажать, чтобы перейти к следующему должность. Это происходит во многих местах документа - я понял, что это места, где были разрывы строк, которые теперь были повреждены.
В моем сценарии делового случая последний тип файла считается недействительным. Поэтому мне нужно написать программу C# для определения типа файла - если это в формате 1 или Format2 и вам нужна помощь.
Я попытался выяснить, отличается ли кодировка от них, прочитав спецификацию, но то же самое в обоих файлах. Я получил следующие спецификации показания: [0]: 57 [1]: 57 [2]: 48 [3]: 54
Я использую следующую программу для обнаружения кодирования:
public static void GetEncoding(string pFilePath,out Encoding pFileEncoding)
{
// Read the BOM
var bom = new byte[4];
using (var file = new FileStream(pFilePath, FileMode.Open, FileAccess.Read))
{
file.Read(bom, 0, 4);
}
// Analyze the BOM
if (bom[0] == 0x2b && bom[1] == 0x2f && bom[2] == 0x76) pFileEncoding = Encoding.UTF7;
if (bom[0] == 0xef && bom[1] == 0xbb && bom[2] == 0xbf) pFileEncoding= Encoding.UTF8;
if (bom[0] == 0xff && bom[1] == 0xfe) pFileEncoding =Encoding.Unicode; //UTF-16LE
if (bom[0] == 0xfe && bom[1] == 0xff) pFileEncoding= Encoding.BigEndianUnicode; //UTF-16BE
if (bom[0] == 0 && bom[1] == 0 && bom[2] == 0xfe && bom[3] == 0xff) pFileEncoding= Encoding.UTF32;
pFileEncoding= Encoding.ASCII;//or Encoding.Default
}
Проверка работы \ r. Только один из типов файлов имеет это, и я могу легко его пометить. В ретроспективе я, вероятно, должен был использовать более мощный редактор, чтобы сначала изучить файлы ... – Sandeep