Как добавить набор итерационных текстовых строк в текстовую строку в определенной строке? - PullRequest
0 голосов
/ 02 ноября 2018

Мне нужно добавить набор повторяющихся текстовых строк в уже существующий текстовый файл. Как я могу реализовать это с помощью C #.

В качестве примера -

Повтор текста:

foreach (string toolName in value.Tools)
{
     sw.WriteLine("[\"at" + Count.ToString("D4") + "\"] = < ");
     sw.WriteLine("text = < \"" + toolName + "\" >");
     sw.WriteLine("description = <\" * \">");
     sw.WriteLine(">");
     Count++;
}

Следует добавить его в строку 62 файла myTextFile.txt

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Как то так. Добавьте все содержимое в список строк, а затем выведите его в файл.

List<string> tools = new List<string>()
{
    "Hammer", "Wrench", "Screwdriver", "etc"
};

List<string> output = new List<string>();
int count = 1;
foreach ( string toolName in tools )
{
    if (output.Count ==  61)
    {
        output.Add ( "some string" );
        count++;
        continue;
    }
    output.Add ( "[\"at" + count.ToString ( "D4" ) + "\"] = < " );
    output.Add ( "[\"at" + count.ToString ( "D4" ) + "\"] = < " );
    output.Add ( "text = < \"" + toolName + "\" >" );
    output.Add ( "description = <\" * \">" );
    output.Add ( ">" );
    count++;
}

string path = @"C:\output.txt";
File.WriteAllLines ( path , output.ToArray ( ) );
0 голосов
/ 02 ноября 2018

Если я понимаю вас между неопределенностью этого вопроса, может быть, вы хотите что-то вроде этого

var lines = File.ReadAllLines(path).ToList();
lines.Insert(62,someFunkyText);
File.WriteAllLines(path,lines);

ReadAllLines (String)

Открывает текстовый файл, читает все строки файла и затем закрывает файл.

Метод List.Insert (Int32, T)

Вставляет элемент в список по указанному индексу.

WriteAllLines (String, IEnumerable)

Создает новый файл, записывает коллекцию строк в файл и затем закрывает файл.

...