Входная строка имела неверный формат streamwriter c#

350
23 февраля 2017, 23:26
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab3._2
{
    struct Book
    {
        public string author;
        public string name;
        public string year;
    }

    class Program
    {
        static void Main(string[] args)
        {
            string path = "D:\\txt.txt";
            string path1 = "D:\\txt1.txt";
            FileStream fstr = File.OpenRead(path);
            Book[] Biblio = new Book[10];
            StreamReader sr = File.OpenText(path);
            StreamWriter sw = new StreamWriter(path1,true);
            for (int i = 0; i<=Biblio.Length-1;i++)
            {
                string parts = sr.ReadLine();
                string[] str = parts.Split(',');
                Biblio[i].author = str[0];
                Biblio[i].name = str[1];
                Biblio[i].year = str[2];      
            }
            for (int i = 0; i <= Biblio.Length - 1; i++)
            {
                Console.WriteLine(Biblio[i].name);
            }
            Console.WriteLine("avt: ");
            string vvd = Console.ReadLine();
            for(int   i = 0; i<=Biblio.Length-1; i++)
            {
                if (vvd == Biblio[i].author)
                {
                    sw.WriteLine("Поиск по автору: { 0}\nПроизведение: { 1}\nДата обращения: { 2}\n", Biblio[i].author.ToString(), Biblio[i].name.ToString(), Biblio[i].year.ToString());
                   // Console.WriteLine("Поиск по автору: {0}\nПроизведение: {1}\nДата обращения: {2}\n",Biblio[i].author, Biblio[i].name, Biblio[i].year);
                }
            }
            sw.Close();
            Console.ReadKey();
        }
    }
}
Answer 1

А почему бы не предположить, что сообщение об ошибке правильное?

Форматная строка "Поиск по автору: { 0}\nПроизведение: { 1}\nДата обращения: { 2}\n" и правда ошибочная. Пробелы после открывающей фигурной скобки недопустимы.

Причём, исходя из закомментированной следующей строки, у вас было правильно раньше.

READ ALSO
Правильное общение Task между собой

Правильное общение Task между собой

Допустим, один Task непрерывно читает данные, а другой Task должен их обрабатывать по мере их получения с некоторой периодичностью

282
Как запустить скрытое окно?

Как запустить скрытое окно?

Дело в том, что для IntPtr мне нужно создать отдельное окно, в рамках MVVM я не могу использовать основное тк

273
Применение и значение ключевого слова volatile

Применение и значение ключевого слова volatile

Если читать горячо любимый msdn можно найти следующую формулировку:

285