Разбор текстового файла с многострочными комментариями

У меня есть файл следующего формата

-----------------------------------
File: test.cs
Some Text Here 
http:\\link

   Comment #1

   Comment #2

   Comment #X

-----------------------------------

У меня есть следующий класс:

public class TextFile
{
    public string File;
    public string Description;
    public string Link;
    public List<string> Comments;
}

Пока что я могу захватить весь текст между строками "-" и сохранить их в локальном строковом буфере. Теперь я пытаюсь разобрать этот строковый буфер в класс TextFile. У меня проблема в том, что комментарии могут содержать символы новой строки, поэтому я не могу просто разделить буфер, а затем проанализировать массив строк.


person user2970916    schedule 10.02.2017    source источник
comment
Это немного сложно; если комментарий может содержать символы новой строки, как узнать, где заканчивается комментарий; есть определенный терминальный символ? Или каждая строка, принадлежащая комментарию, имеет отступ в 3 символа, как показано в примере?   -  person Codor    schedule 10.02.2017
comment
Не разделяйте строки, разделяйте ключевые слова (комментарий) ==> тогда символы новой строки больше не будут проблемой   -  person    schedule 10.02.2017
comment
@Codor да, похоже, что каждый комментарий имеет отступ в 2 символа.   -  person user2970916    schedule 10.02.2017
comment
То есть комментарий не может содержать фразу Comment #N и никогда не будет?   -  person CodeCaster    schedule 10.02.2017
comment
Комментарии на самом деле не начинаются с комментария, я просто добавил его для простоты.   -  person user2970916    schedule 10.02.2017
comment
Да, поэтому вам нужно определить шаблон и реализовать его. Начните с показа фактического шаблона в вашем вопросе. Если перед каждым новым комментарием стоят два пробела, остается тот же вопрос: комментарий не может содержать новую строку, за которой следуют два пробела (даже если вы показываете три)?   -  person CodeCaster    schedule 10.02.2017
comment
Как вы разграничиваете комментарии? Вам нужно как-то узнать, когда начинается новый комментарий.   -  person gunnerone    schedule 10.02.2017
comment
Это точно так же, как упоминалось в CodeCaster, вы должны установить точный шаблон для своей информации и читать так, как будто вы установили свой шаблон, это единственный способ справиться с такими вещами.   -  person    schedule 10.02.2017
comment
Это файл, который экспортируется, поэтому у меня нет особого контроля над его форматом. Мой фрагмент показывает 3 пробела, потому что я вручную ввел эту информацию. Но я могу управлять форматированием комментариев, поэтому я могу запретить пользователям вводить комментарий, за которым следует новая строка и 2 пробела.   -  person user2970916    schedule 10.02.2017