.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();
}
}
}
}