Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2016, 18:16   #1
qpMAXqp
Пользователь
 
Аватар для qpMAXqp
 
Регистрация: 20.11.2013
Сообщений: 16
Вопрос Работа с файлами. Считать, обработать и вывести нужный результат. Прошу помощи)

Здравствуйте уважаемые Программисты. Прошу помочь с решением такой задачи:

"Вывести даты из файла в формате « ДД Месяц ГГ г.», где ДД – день двузначным числом, Месяц - русское наименование месяца в родительном падеже, ГГ – последние две цифры года. Каждая дата в файле находится на отдельной строчке. Первое число – год, второе число – день, третье число – номер месяца. Элементы даты в файле разделены запятой."


Исходные данные из файлов с тестами:
год,день,месяц
1)
1976,29,1
1996,25,8
1982,10,12
2003,15,9
1995,12,7
1972,1,12
1982,30,6
1970,18,11
1980,26,3

2)
2000, 4, 3
1992, 24, 4
2004, 20, 12
1964, 29, 2
1996, 119, 11
1991, 19, 13
1963, 31, 11

И вот что должно выводиться:

1 тест)
29 января 76 г.
25 августа 96 г.
10 декабря 82 г.
15 сентября 03 г.
12 июля 95 г.
1 декабря 72 г.
30 июня 82 г.
18 ноября 70 г.
26 марта 80 г.

2 тест)
4 марта 00 г.
24 апреля 92 г.
20 декабря 04 г.
29 февраля 64 г.
невозможная дата
невозможная дата
невозможная дата

Сложность вызывает второй тест, 5-я - 7-я строчки (отметил красным). Подскажите, как обработать такой случай и в каком месте?)))
Необходимо, если данные неправильные выводилось "невозможная дата". А у меня пока выводится "невозможная дата" в самом конце в этом месте:
Код:
else if (month == "11")
                {
                    month = "Ноября";

                    if (day == "31")
                    {
                        Console.WriteLine("невозможная дата");
                        break;
                    }
                }
p.s. файлы с тестами прикрепил


Вот мой код
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ReadFiles
{
    class Program
    {
        static void Main(string[] args)
        {

            int a = 0;
            int t = int.Parse(Console.ReadLine());
            //проверка на наличе файла
            if (!File.Exists("test" + t + ".txt"))
            {
                Console.WriteLine("error");
                return;
            }

            StreamReader sr2 = new StreamReader("test" + t + ".txt");

            //вывод содержимого
            while (!sr2.EndOfStream) //пока не закончился файл
            {
                String str = sr2.ReadLine();
                //выводим год
                //Console.WriteLine(str.Substring(0, 4));
                str = str.Replace(" ", "");
                //выводим день
                string day;
                if (str.IndexOf(',', 5) == 6)
                {
                    //Console.WriteLine(str.Substring(5, 1));
                    day = str.Substring(5, 1);

                }
                else
                {
                    //Console.WriteLine(str.Substring(5, 2));
                    day = str.Substring(5, 2);
                }

                //Выводим месяц
                int begin = str.IndexOf(',', 5)+1;
                int count = str.Length - begin;
               // Console.WriteLine(str.Substring(begin, count));
                
                string month = str.Substring(begin, count);
                 
                string year = str.Substring(2, 2);

                if (Convert.ToInt32(day) > Convert.ToInt32("31"))
                {
                    day = "неверный день";
                }
                //если 
                if (month == "1")
                {
                    month = "Января";
                }
                else if (month == "2")
                {
                    month = "Февраля";
                }
                else if (month == "3")
                {
                    month = "Марта";
                }
                else if (month == "4")
                {
                    month = "Апреля";
                }
                else if (month == "5")
                {
                    month = "Мая";
                }
                else if (month == "6")
                {
                    month = "Июня";
                }
                else if (month == "7")
                {
                    month = "Июля";
                }
                else if (month == "8")
                {
                    month = "Августа";
                }
                else if (month == "9")
                {
                    month = "Сентября";
                }
                else if (month == "10")
                {
                    month = "Октября";
                }
                else if (month == "11")
                {
                    month = "Ноября";

                    if (day == "31")
                    {
                        Console.WriteLine("невозможная дата");
                        break;
                    }
                }
                else if (month == "12")
                {
                    month = "Декабря";
                }
                else
                {
                    month = "месяц неверный";
                    
                }

                Console.WriteLine(day +" "+ month + " "+ year + " г.");
                a++;

               
            }

            //закрытие файла
            sr2.Close();
        }
    }
}
Большое спасибо!)
Вложения
Тип файла: txt test2.txt (93 байт, 119 просмотров)
Тип файла: txt test1.txt (99 байт, 120 просмотров)
qpMAXqp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи в написании программ для работы с текстовыми файлами Никита757 Паскаль, Turbo Pascal, PascalABC.NET 1 15.12.2015 21:35
Прошу вашей помощи. Работа с массивами и типизированными файлами (Delphi) dandikon Помощь студентам 2 02.11.2013 15:17
Прошу помощи в решении задачи с текстовыми файлами. student2008 Помощь студентам 1 02.06.2009 21:55
Динамически считать Данные из файла, и вывести результат в файл StudeHt Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 09:04