Делаю программу C# при помощи SFML. Решил сделать поддержку разных языков при помощи обычных текстовых файлов. Попытался в тексте сделать перенос строк с помощью \n:
Но при чтении файла при помощи StreamReader'а он выводит полную строку С \n:
Вот как происходит чтение файла:
public static List<string> text = new List<string>();
public static void Load(string languageName)
{
StreamReader sr = new StreamReader(Environment.CurrentDirectory + $"\\Files\\Languages\\{languageName}.txt");
while(!sr.EndOfStream)
{
string line = sr.ReadLine();
if(line.StartsWith("//"))
{
continue;
}
else
{
text.Add(line);
}
}
sr.Close();
}
Если поставить \n\r ничего не поможет:
Вот сам файл: https://drive.google.com/file/d/1ZOCmMKdHcz3319u6ny58EWDjvMqyy0V5/view?usp=sharing
Всё просто, если пользоваться отладчиком VS.
После чтения из файла в строке оказывается не "\n\r", а "\\n\\r"
В вашем случае достаточно заменить \\ на \ и всё будет работать.
Для моего примера можно сделать так:
string[] lines = File.ReadAllLines("test.txt").Select(x => x.Replace("\\n\\r", "\n\r")).ToArray();
Для вашего примера с поддержкой комментариев можно сделать так:
string[] lines = File.ReadAllLines("test.txt").Where(x => !x.StartsWith("//")).Select(x => x.Replace("\\n\\r", "\n\r")).ToArray();
Зачем вы используете Escape последовательности в текстовом файле? При чтении из файла и последующем выводе текста файла в консоль, символ новой строки спокойной выводится как новая строка.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Multiline текст в checkedListBox с#(winforms) - Код взял отсюда
как заставить RigidBody разгоняться до определенной скорости, как правильно прикладывать силудвигаю танчик
Допустим, я пытаюсь писать в шаблон информацию через fwrite() в тот момент, когда другой скрипт PHP его читает и выполняет include'ом