Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 15.02.2016
Сообщений: 1
1

Работа с текстовыми файлами. Узнать на какой номер было совершено больше всего звонков

22.03.2019, 14:19. Показов 2676. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача написать на с# программу: Имеется файл с расшифровкой счета за телфонные разговоры,(дата,номер телефона,кол-во минут). Узнать на какой номер было совершено больше всего звонков.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2019, 14:19
Ответы с готовыми решениями:

Найти, из какой школы (школ) было больше всего участников олимпиады
Прошу помощи. Болел - ничего не понял. Скоро экзамен, а я ничего не понимаю в С++. Дали примерные...

Узнать, какой участок кода потребляет больше всего % процессора
Здравствуйте. Имеется участок кода где-то на 500 строк. Когда скорость интернета больше 100 кб\с -...

Как получить объект на котором было совершено событие?
особенно интересуют события OnClick и событие при котором появляется всплывающее меню PopupMenu.

Найти год, когда было совершено максимальное количество покупок.
Есть таблица покупателей Customers, с параметрами: customer_id, cutomer_name, date(дата покупки,...

3
4 / 4 / 0
Регистрация: 16.02.2019
Сообщений: 115
22.03.2019, 15:26 2
Можете текст файла показать?
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
22.03.2019, 16:03 3
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Clordrin, это как обычно невозможно. Так что опять придется JSON-файл использовать.

Добавлено через 25 минут
Для программы нужно установить NuGet-пакет Newtonsoft.Json.
Файлы:
c:\Temp\json2423484.json
Javascript
1
2
3
4
5
6
[
    {"Date":"2019-01-01", "Phone":"123", "Min":3},
    {"Date":"2019-01-02", "Phone":"124", "Min":5},
    {"Date":"2019-01-02", "Phone":"125", "Min":1},
    {"Date":"2019-01-03", "Phone":"125", "Min":1}
]
Program.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
 
namespace Question2423484_JSON
{
    public class PhoneCalls
    {
        public DateTime Date { get; set; }
        public string Phone { get; set; }
        public int Min { get; set; }
    }
 
    class Program
    {
        const string path = @"c:\temp\json2423484.json";
 
        static void Main(string[] args)
        {
            var str = File.ReadAllText(path, Encoding.UTF8);
            var list = JsonConvert.DeserializeObject<List<PhoneCalls>>(str);
 
            var groups = list.GroupBy(e => e.Phone);
            foreach (var item in list)
            {
                Console.WriteLine($"{item.Date} {item.Phone} {item.Min}");
            }
            var max = groups.Max(g => g.Count());
            Console.WriteLine("Больше всего звонков было на номер: " + groups.First(e => e.Count() == max).Key);
            Console.ReadKey();
        }
    }
}
0
2806 / 1676 / 884
Регистрация: 14.04.2015
Сообщений: 5,717
22.03.2019, 16:20 4
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Можно так.
структура файла:
2019-03-20;55-55-55;10
2019-03-20;55-55-55;10
2019-03-20;55-55-55;10
2019-03-20;55-55-55;10
2019-03-20;45-55-55;10
2019-03-20;45-55-55;10
2019-03-20;45-55-55;10
2019-03-20;35-55-55;10
2019-03-20;35-55-55;10
2019-03-20;35-55-55;10
2019-03-20;25-55-55;10
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 class Program
    {
        static void Main(string[] args)
        {
            string[] DataFromFile = File.ReadAllLines(@"price.txt", Encoding.Default);
 
            List<TelTalk> LInfoAboutTalk = new List<TelTalk>();
 
            for (int i = 0; i < DataFromFile.Length; i++)
            {
                TelTalk Talk = new TelTalk();
 
                var CapElement = DataFromFile[i].Split(';');
 
                Talk.Data = Convert.ToDateTime(CapElement[0]);
 
                Talk.Phone = CapElement[1];
 
                Talk.Minute = Convert.ToInt32(CapElement[2]);
 
                LInfoAboutTalk.Add(Talk);
            }
            var PhoneGroups = from Phone in LInfoAboutTalk
                               group Phone by Phone.Phone into g
                               select new { Name = g.Key, Count = g.Count() };
 
            var MaxMinute = PhoneGroups.Max(g => g.Count);
 
            foreach (var group in PhoneGroups)
            {
                if (MaxMinute.Equals(group.Count))
                {
                    Console.WriteLine("{0} : {1}", group.Name, group.Count);
                }
            }           
        }
    }
     struct TelTalk
     {
        public DateTime Data { get; set; }
 
        public string Phone { get; set; }
 
        public int Minute { get; set; }
     }
Добавлено через 2 минуты
блин, тупанул, сорян...не то задание выполнил
1
22.03.2019, 16:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2019, 16:20
Помогаю со студенческими работами здесь

Работа с текстовыми файлами
Всем доброго дня! Нужна помощь в решении следующей работы: Нужно создать файл, содержащий текст,...

Работа с текстовыми файлами
Добрый вечер, слёзно прошу помощи... объясните, как считать данные из текстового файла таким...

Работа с текстовыми файлами
Господа программисты, помогите эффективно реализовать: 1.Найти в текстовом файле слово, которое...

Работа с текстовыми файлами
Привет всем :) Значит нужно загрузить текстовый файл из компа и построчно записать его в...

Работа с текстовыми файлами
Есть текстовый файл в котором существует последовательность чисел. Нужно создать текстовый файл...

Работа с текстовыми файлами
Здравствуйте! Как подсчитать количество букв, которые встретились в тексте двойными? Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru