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

Перенос части текста из одного файла в другой

24.06.2017, 01:34. Показов 4171. Ответов 1

Author24 — интернет-сервис помощи студентам
Задача:
_______
Распечатать анкетные данные студентов, получивших за все время обучения одну оценку 4, а все остальные оценки - 5.
_______
Предположим, дан фаил, в котором записаны фамилии и оценки, примерно так:
Gelz |5,4,5,5,5,5
Nevelson |3,4,5,5,5,5
Grimp |3,4,5,5,5,5
Brown |4,4,5,5,5,5
Harris |5,4,5,5,5,5
Lee |2,4,5,5,5,5
Lewis |4,5,5,5,5,5
Walker |5,4,5,5,5,5
Phillips |5,5,5,5,4,5

Из данного файла надо перенести данные только об студентах, получивших за все время обучения одну оценку 4, а все остальные оценки - 5.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2017, 01:34
Ответы с готовыми решениями:

Перенос текста с одного файла в другой
Нужно перенести текст с одного файла в другой, и чтобы каждая строка была нумеровоной типа: input...

Перенос текста из одного файла в другой
Нужно ввести n-ое количество строк, которые сохраняется в файле text1.txt и переносятся в...

Перенос текста из одного файла в другой
Помогите плиз, надо из одного файла добавить текст в другой... Нужно текст из первого файла... ...

Перенос части данных из одной строки в другую строку из одного файла в другой файл
Мне нужно из файла с таблицей (Пример картотека) , файл содержит около 60 тыс строк, найти...

1
134 / 129 / 59
Регистрация: 16.06.2013
Сообщений: 523
24.06.2017, 02:08 2
Лучший ответ Сообщение было отмечено Dream_of_Cthulh как решение

Решение

Всё просто. Вот код, с комментариями:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
        /// <summary>
        /// Проверяем строку на следование условию
        /// </summary>
        /// <param name="line">Строка</param>
        /// <returns>True - НЕ соответствует условию</returns>
        private bool testLine(string line)
        {
            bool ex = false;
            //Переменная, для считывания оценки
            int num;
            //Флаг наличия одной четвёрке в списке оценок
            bool forFlag = false;
            //Парсим строку на имена и оценки
            var buff = line.Split(new string[] { "\t|" }, StringSplitOptions.None);
            
            //Просто проверка на некорректные строки
            if(buff.Length > 1)
            {
                //Парсим на отдельные оценки
                buff = buff[1].Split(new char[] { ',' }, StringSplitOptions.None);
                //Проходимся по всем оценкам
                foreach(var s in buff)
                {
                    //Парсим оценку в число, и сразу же проверяем на ошибки
                    if(int.TryParse(s, out num))
                    {
                        //Если найдена четвёрка
                        if (num == 4)
                        {
                            //И она уже не первая
                            if (forFlag)
                            {
                                //Говорим, что проверка не пройдена
                                ex = true;
                                //И тупо выходим из цикла
                                break;
                            }
                            //Говорим, что 4 уже была
                            forFlag = true;
                        }
                        //Если оценка меньше 4, то тупо выходим из цикла
                        else if (num < 4)
                        {
                            //Говорим, что проверка не пройдена
                            ex = true;
                            break;
                        }
                        //А, при пятёрках мы ничего не делаем
                    }
                }
            }
 
            return ex;
        }
 
        /// <summary>
        /// Перенос строк из одного файла в другой
        /// </summary>
        /// <param name="inputPath">Путь к файлу с входными данными</param>
        /// <param name="outputPath">путь к файлу для записи данных</param>
        private void moveLines(string inputPath, string outputPath)
        {
            //Считываем все строки из файла, и переводим их в список
            var lines = System.IO.File.ReadAllLines(inputPath).ToList();
            //Удаляем все строки, не соответствующие условию
            lines.RemoveAll(testLine);
            //Записываем отсортированные строки в файл
            System.IO.File.WriteAllLines(outputPath, lines);
        }
По факту, можно было бы реализовать даже прощще, через поиск в строке, но, по идее данная задача идёт как раз на парсинг строк, так что вот так.
0
24.06.2017, 02:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2017, 02:08
Помогаю со студенческими работами здесь

Перенос части данных из одного столбца в другой
BLIZZAK SPIKE-01(175/65R14 SP1PZ 082T T (ШИП))- 2014г. подскажите пожалуйста как перенести в...

Перенос данных табличной части из одного документа в другой
Всем доброго времени суток. Такая проблема-есть документ АктПриемаСдачи. В этом документе допустим...

Перенос части данных из одного столбца в другой макросом
BLIZZAK SPIKE-01(175/65R14 SP1PZ 082T T (ШИП))- 2014г. подскажите пожалуйста как перенести в...

Перенос части текста в другой столбец
Добрый день. Мне необходимо перенести часть текста (буквы) из ячейки Excel в соседний столбец...


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

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