.NET 4.x Запись результата в текстовый файл? - C#

Узнай цену своей работы

Формулировка задачи:

Как записать в файл все данные которые выводиться с консоли?
using System;
using System.Threading;
using log4net;
using log4net.Config;
using System.IO;
namespace Application
{
    class Program
    {
       
        static void Main(string[] args)
 
        {
 
            int n1, n2, n3; Logger.InitLogger();//инициализация - требуется один раз в начале
        
            Logger.Log.Info("Ура заработало!");
            Logger.Log.Error("Ошибочка вышла!");
            
            Console.Write("Параллельне перемноження матриць - ");
            Console.Write("\nВведiть розмiрнiсть матрицi A(n1 x n2): \nn1 = ");
            n1 = Convert.ToInt32(Console.ReadLine());
            Console.Write("n2 = ");
            n2 = Convert.ToInt32(Console.ReadLine());
            Console.Write("\nВведiть розмiрнiсть матрицi B(n2 x n3): n2 = {0} x n3 = ", n2);
            n3 = Convert.ToInt32(Console.ReadLine());
            Console.Write("Данi матрицi будуть заповненнi параллельно: стрiчковим способом..... ");
            Console.Write("\nВведiть кiлькiсть використовуюмих потокiв");
            Console.Write("(Кiлькiть потокiв повидо бути кратним змiннiй n1) - ");
 
            int TreadAmount = Convert.ToInt32(Console.ReadLine());
            if (n1 % TreadAmount != 0)
            {
                Console.Write("\nКiлькiть потокiв не кратне кiлькостi рядкiв матрицi!");
                Console.ReadKey();
                return;
            }
            else
            {
                double[,] MatrixA = new double[n1, n2];
                double[,] MatrixB = new double[n2, n3];
                double[,] MatrixC = new double[n1, n2];
 
                Console.Write("Матриця А и В будут заполнятися випадковими числами....\n");
                //Создание потоков
                for (int i = 0; i < TreadAmount; i++)
                {
                    Rndthread nam = new Rndthread(i, MatrixA, MatrixB, n1, n2, n3, TreadAmount);
                }
                Thread.Sleep(500); Console.ResetColor();
 
                //Вывод матриц А и В-----------
                Console.WriteLine("Для виводу матрицi А и В введiть 1, для продовжения нажмiть любу iншу клавiшу");
                string one = Console.ReadLine();
                if (one == "1")
                {
                    Thread.Sleep(500);
                    Console.ResetColor();
                    Console.WriteLine("\nМатриця А -");
                    for (int i = 0; i < n1; i++)
                    {
                        for (int j = 0; j < n2; j++)
                        {
                            Console.Write("{0}\t", MatrixA[i, j]);
 
                        }
                        Console.Write("\n");
                    }
                    Console.WriteLine("\nМатриця B -");
                    for (int i = 0; i < n2; i++)
                    {
                        for (int j = 0; j < n3; j++)
                        {
                            Console.Write("{0}\t", MatrixB[i, j]);
 
                        }
                        Console.Write("\n");
                    }
                    Console.WriteLine("Для перемноження матрицi А i В нажмiть любую клавiшу....");
                    Console.ReadKey();
                }
                //-------------------
                Console.WriteLine("Перемноження......");
                for (int i = 0; i < TreadAmount; i++)
                {
                    MultiplyThread proc = new MultiplyThread(i, MatrixC, MatrixA, MatrixB, n1, n2, n3, TreadAmount);
                }
                Thread.Sleep(1300); Console.ResetColor();
                Console.WriteLine("Для виводу матрицi С нажмiть любу клавiшу....");
                Console.ReadKey();
                Console.ResetColor();
                Console.WriteLine("Вивiд матрицi {0} на {1}...", n1, n2);
                for (int i = 0; i < n1; i++)
                {
                    for (int j = 0; j < n3; j++)
                    {
                        Console.Write("{0}\t", MatrixC[i, j]);
                    }
                    Console.Write("\n");
                }
                Console.WriteLine("\nДля виходу iз программи нажмiть любу клавiшу....");
                Console.ReadKey();

            }
 
        }
    }
}

Решение задачи: «.NET 4.x Запись результата в текстовый файл?»

textual
Листинг программы
using System;
using System.Threading;
using log4net;
using log4net.Config;
using System.IO;
 
namespace Application
{
    class Program
    {
        static void writer(string text)
        {
            Console.WriteLine(text);
            File.AppendAllText("РЕЗУЛЬТАТЫ.txt", text);
        }
        static void Main(string[] args)
 
        {
 
            int n1, n2, n3; Logger.InitLogger();//инициализация - требуется один раз в начале
 
            Logger.Log.Info("Ура заработало!");
            Logger.Log.Error("Ошибочка вышла!");
            
            writer("Параллельне перемноження матриць - ");
            writer("\nВведiть розмiрнiсть матрицi A(n1 x n2): \nn1 = ");
            n1 = Convert.ToInt32(Console.ReadLine());
            writer("n2 = ");
            n2 = Convert.ToInt32(Console.ReadLine());
            writer("\nВведiть розмiрнiсть матрицi B(n2 x n3): n2 = "+n2+" x n3 = ");
            n3 = Convert.ToInt32(Console.ReadLine());
            writer("Данi матрицi будуть заповненнi параллельно: стрiчковим способом..... ");
            writer("\nВведiть кiлькiсть використовуюмих потокiв");
            writer("(Кiлькiть потокiв повидо бути кратним змiннiй n1) - ");
 
            int TreadAmount = Convert.ToInt32(Console.ReadLine());
            if (n1 % TreadAmount != 0)
            {
                writer("\nКiлькiть потокiв не кратне кiлькостi рядкiв матрицi!");
                Console.ReadKey();
                return;
            }
            else
            {
                double[,] MatrixA = new double[n1, n2];
                double[,] MatrixB = new double[n2, n3];
                double[,] MatrixC = new double[n1, n2];
 
                writer("Матриця А и В будут заполнятися випадковими числами....\n");
                //Создание потоков
                for (int i = 0; i < TreadAmount; i++)
                {
                    Rndthread nam = new Rndthread(i, MatrixA, MatrixB, n1, n2, n3, TreadAmount);
                }
                Thread.Sleep(500); Console.ResetColor();
 
                //Вывод матриц А и В-----------
                writer("Для виводу матрицi А и В введiть 1, для продовжения нажмiть любу iншу клавiшу");
                string one = Console.ReadLine();
                if (one == "1")
                {
                    Thread.Sleep(500);
                    Console.ResetColor();
                    writer("\nМатриця А -");
                    for (int i = 0; i < n1; i++)
                    {
                        for (int j = 0; j < n2; j++)
                        {
                            writer(MatrixA[i, j]+"\t");
 
                        }
                        writer("\n");
                    }
                    writer("\nМатриця B -");
                    for (int i = 0; i < n2; i++)
                    {
                        for (int j = 0; j < n3; j++)
                        {
                            writer(MatrixB[i, j]+"\t");
 
                        }
                        writer("\n");
                    }
                    writer("Для перемноження матрицi А i В нажмiть любую клавiшу....");
                    Console.ReadKey();
                }
                //-------------------
                writer("Перемноження......");
                for (int i = 0; i < TreadAmount; i++)
                {
                    MultiplyThread proc = new MultiplyThread(i, MatrixC, MatrixA, MatrixB, n1, n2, n3, TreadAmount);
                }
                Thread.Sleep(1300); Console.ResetColor();
                writer("Для виводу матрицi С нажмiть любу клавiшу....");
                Console.ReadKey();
                Console.ResetColor();
                writer("Вивiд матрицi "+n1+" на "+n2+"...");
                for (int i = 0; i < n1; i++)
                {
                    for (int j = 0; j < n3; j++)
                    {
                        writer(MatrixC[i, j]+ "\t");
                    }
                    writer("\n");
                }
                writer("\nДля виходу iз программи нажмiть любу клавiшу....");
                Console.ReadKey();
        
            }
 
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы