Свежий взгляд на код чтения файла - C#
Формулировка задачи:
чтение из файла, был код
читало сразу, не устраивает преподавателя, требует чтобы читало построчно ибо может быть огромный файл и я так полагаю что должно быть ограничение по строкам
получил код
не знаю правильный ли код, но теперь ругается на
String fileName = @"..\..\in.csv";
if (!File.Exists(fileName))
{
Console.WriteLine("No file {0} in program directory", fileName);
Console.Read();
return;
}
var lines = File.ReadAllLines(fileName);
string[][] text = new string[lines.Length][];
for (var i = 0; i < text.Length; i++)
{
text[i] = lines[i].Split(';');
}
//Цикл по строкам
foreach (string[] line in text)
{
//Цикл по словам в строке
foreach (var s in line)
{
}
}int counter = 0;
string lines="";
StreamReader file = new StreamReader(@"..\..\in.csv");
while ((lines = file.ReadLine()) != null)
{
System.Console.WriteLine(lines);
counter++;
}
string[][] text = new string[lines.Length][];
for (var i = 0; i < text.Length; i++)
{
text[i] = lines[i].Split(';');
}
//Цикл по строкам
foreach (string[] line in text)
{
//Цикл по словам в строке
foreach (var s in line)
{
}
}.Split(';');
хотя до этого все было впорядкеРешение задачи: «Свежий взгляд на код чтения файла»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace преобразование_в_массив
{
class Program
{
static void Main(string[] args)
{
// int counter = 0;
// var lines="";
// var te = "";
// string n ="\n";
// StreamReader file = new StreamReader(@"..\..\in.csv");
String fileName = @"..\..\in.csv";
if (!File.Exists(fileName))
{
Console.WriteLine("No file {0} in program directory", fileName);
Console.Read();
return;
}
//while (( lines = file.ReadLine()) != null)
//{
// te =n+te+lines;
// System.Console.WriteLine(lines);
// counter++;
//}
var lines="";
// var lines = File.ReadAllLines(fileName);
foreach (string line in File.ReadLines(fileName))
{
if (line != null)
{
lines = lines + line;
Console.WriteLine(line);
}
}
string[][] text = new string[lines.Length][];
for (var i = 0; i < text.Length; i++)
{
text[i] = lines[i].Split(";");
}
//Цикл по строкам
foreach (string[] line in text)
{
//Цикл по словам в строке
foreach (var s in line)
{
}
}
double r = 0.0;//значения
double sum = 0;//сумма
int y = 0;
int x;
int errors = 0;//errors
int one = 7;// первая запись с данной позиции(знак "-" без пробела)
StringBuilder sb = new StringBuilder("result(");
for (x = 0; x < text.Length; x++)
{
try
{
y = int.Parse(text[x][0]);
if (text[x][y] == "-")
{
x += 1;
r = double.Parse(text[x][0]);
r *= -1;
goto l1;
}
r = double.Parse(text[x][y]);
}
catch (FormatException)
{
errors += 1;
continue;
}
catch (IndexOutOfRangeException)
{
errors += 1;
continue;
}
l1:
sum += r;
if (sb.Length == one) //х == 0, если первое
{
sb.Append(r);
continue;
}
if (r >= 0)//если положительное
{ sb.Append(" + " + r); }
if (r < 0)//отрицательное
{
r *= -1;
sb.Append(" - " + r);
}
}
sb.Append(") = " + sum);
sb.Append(" \nerror-lines = " + errors);
Console.WriteLine(sb);//вывод строки
System.Console.ReadKey();
}
}
}