Свежий взгляд на код чтения файла - C#

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

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

чтение из файла, был код
Листинг программы
  1. String fileName = @"..\..\in.csv";
  2. if (!File.Exists(fileName))
  3. {
  4. Console.WriteLine("No file {0} in program directory", fileName);
  5. Console.Read();
  6. return;
  7. }
  8. var lines = File.ReadAllLines(fileName);
  9. string[][] text = new string[lines.Length][];
  10. for (var i = 0; i < text.Length; i++)
  11. {
  12. text[i] = lines[i].Split(';');
  13. }
  14. //Цикл по строкам
  15. foreach (string[] line in text)
  16. {
  17. //Цикл по словам в строке
  18. foreach (var s in line)
  19. {
  20. }
  21. }
читало сразу, не устраивает преподавателя, требует чтобы читало построчно ибо может быть огромный файл и я так полагаю что должно быть ограничение по строкам получил код
Листинг программы
  1. int counter = 0;
  2. string lines="";
  3. StreamReader file = new StreamReader(@"..\..\in.csv");
  4. while ((lines = file.ReadLine()) != null)
  5. {
  6. System.Console.WriteLine(lines);
  7. counter++;
  8. }
  9. string[][] text = new string[lines.Length][];
  10. for (var i = 0; i < text.Length; i++)
  11. {
  12. text[i] = lines[i].Split(';');
  13. }
  14. //Цикл по строкам
  15. foreach (string[] line in text)
  16. {
  17. //Цикл по словам в строке
  18. foreach (var s in line)
  19. {
  20. }
  21. }
не знаю правильный ли код, но теперь ругается на

.Split(';');

хотя до этого все было впорядке

Решение задачи: «Свежий взгляд на код чтения файла»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6.  
  7. namespace преобразование_в_массив
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.            // int counter = 0;
  14.           //  var lines="";
  15.           //  var te = "";
  16.           //  string n ="\n";
  17.           //  StreamReader file = new StreamReader(@"..\..\in.csv");
  18.             String fileName = @"..\..\in.csv";
  19.             if (!File.Exists(fileName))
  20.             {
  21.                 Console.WriteLine("No file {0} in program directory", fileName);
  22.                 Console.Read();
  23.                 return;
  24.             }
  25.             //while (( lines = file.ReadLine()) != null)
  26.             //{
  27.             //    te =n+te+lines;
  28.             //    System.Console.WriteLine(lines);
  29.             //    counter++;
  30.             //}
  31.             var lines="";
  32.  
  33.  
  34.            // var lines = File.ReadAllLines(fileName);
  35.  
  36.             foreach (string line in File.ReadLines(fileName))
  37.             {
  38.                 if (line != null)
  39.                 {
  40.                     lines = lines + line;
  41.                     Console.WriteLine(line);
  42.                 }
  43.             }
  44.  
  45.  
  46.             string[][] text = new string[lines.Length][];
  47.             for (var i = 0; i < text.Length; i++)
  48.             {
  49.                text[i] = lines[i].Split(";");
  50.             }
  51.  
  52.             //Цикл по строкам
  53.             foreach (string[] line in text)
  54.             {
  55.                 //Цикл по словам в строке
  56.                 foreach (var s in line)
  57.                 {
  58.                 }
  59.             }
  60.  
  61.             double r = 0.0;//значения
  62.             double sum = 0;//сумма
  63.             int y = 0;
  64.             int x;
  65.             int errors = 0;//errors
  66.             int one = 7;// первая запись с данной позиции(знак "-" без пробела)
  67.  
  68.             StringBuilder sb = new StringBuilder("result(");
  69.             for (x = 0; x < text.Length; x++)
  70.             {
  71.                 try
  72.                 {
  73.                     y = int.Parse(text[x][0]);
  74.                     if (text[x][y] == "-")
  75.                     {
  76.                         x += 1;
  77.                         r = double.Parse(text[x][0]);
  78.                         r *= -1;
  79.                         goto l1;
  80.                     }
  81.                     r = double.Parse(text[x][y]);
  82.  
  83.                 }
  84.                 catch (FormatException)
  85.                 {
  86.                     errors += 1;
  87.                     continue;
  88.                 }
  89.                 catch (IndexOutOfRangeException)
  90.                 {
  91.                     errors += 1;
  92.                     continue;
  93.                 }
  94.             l1:
  95.                 sum += r;
  96.                 if (sb.Length == one)   //х == 0, если первое
  97.                 {
  98.                     sb.Append(r);
  99.                     continue;
  100.                 }
  101.                 if (r >= 0)//если положительное
  102.                 { sb.Append(" + " + r); }
  103.  
  104.                 if (r < 0)//отрицательное
  105.                 {
  106.                     r *= -1;
  107.                     sb.Append(" - " + r);
  108.                 }
  109.             }
  110.             sb.Append(") = " + sum);
  111.             sb.Append(" \nerror-lines = " + errors);
  112.             Console.WriteLine(sb);//вывод строки
  113.             System.Console.ReadKey();
  114.         }
  115.     }
  116. }

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


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

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

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы