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

Записать в отдельный файл тех людей, у которых нет сотового телефона

28.11.2013, 19:10. Показов 569. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется код
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
        private void button3_Click(object sender, EventArgs e) /*Файл для отправки СМС*/
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
 
            if (openFileDialog1.ShowDialog() != DialogResult.OK)
            {
                MessageBox.Show("Вы не выбрали файл!");
                return;
            }
            //try
            //{
            Regex regFIO = new Regex(@"[А-Яа-я]{2,}\s[А-Яа-я]{2,}[ич$,на$]{2,2}", RegexOptions.IgnoreCase);
            Regex regCellPhone = new Regex(@"[7,8][9][0-9]{9,9}", RegexOptions.IgnoreCase);
            using (var sr = new StreamReader(openFileDialog1.FileName, Encoding.Default))
            using (var sw = new StreamWriter(@"D:\OloloshA\mra\SMS.txt", false, Encoding.Default))
            {
                while (!sr.EndOfStream)
                {
                    string line = sr.ReadLine();
                    if (string.IsNullOrEmpty(line) || line.Length < 11)
                        continue;
                    if (line.Substring(7, 1) == "/")
                    {
                        var Contract = line.Substring(0, 12);
                        MatchCollection matchesFIO = regFIO.Matches(line);
                        foreach (Match FIO in matchesFIO)
                        {
                            MatchCollection matchesCell = regCellPhone.Matches(line);
                            foreach (Match Phone in matchesCell)
                            {
                                sw.WriteLine(Contract + ";" + FIO + ";" + Phone);
                            }
 
                        }
                    }
                }
            }
            MessageBox.Show("Выполнено!");
            //}
            //catch (Exception ex)
            //{
            //    MessageBox.Show("Ошибка : " + ex.Message);
            //}
 
        }
и файл
Код
1111001/4567   Васильев Владимир Владимирович            ,8353445566 ,79034445566
1111001/1234   Васильев Андрей Алексеевич               , 242191,89537778899
1. Нужно получить из каждой строки только Имя и Отчество. Моя регулярка с этой задачей не вполне корректно справляется:
Код
1111001/1112;Бурлуцкий Евгени;79279998877
1111001/1113;да Анатольевна;79095556677
2. Нужно также записать в отдельный файл те строки из файла, у которых нет сотового телефона(есть городской) или вообще он не указан, а foreach вроде так не может.

Прошу пнуть в нужную сторону.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2013, 19:10
Ответы с готовыми решениями:

Получить строки, в которых встречается слово logout и записать эти строки в отдельный файл
Здравствуйте. Помогите пожалуйста решить задачку. Есть несколько файлов формата data.log. Из них...

Записать в итоговый файл слова, в записи которых нет одинаковых букв
Вводится текст из файла INPUT.TXT.Записать в файл с именем OUTPUT.TXT слова, в записи которых нет...

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

Отобрать только тех людей, у которых общий балл по ЕГЭ меньше среднего
Как сделать так чтобы программа отбирала только тех людей у которых общий бал по егэ меньше...

6
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
28.11.2013, 19:47 2
Тебе сюда
1
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 68
29.11.2013, 09:59  [ТС] 3
Цитата Сообщение от DataPlanner Посмотреть сообщение
Тебе сюда
А по второму вопросу?
0
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
29.11.2013, 10:12 4
В цикле обходи все строки, используй регулярные выражения (IsMatch метод) чтобы разделить строки на группы.
0
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 68
29.11.2013, 11:33  [ТС] 5
Цитата Сообщение от DataPlanner Посмотреть сообщение
Тебе сюда
Наваял вот такое:
Код
[А-Яа-яёЁ]{2,}\s[ёЁА-Яа-я]{2,}вич|[А-Яа-яёЁ]{2,}\s[ёЁА-Яа-я]{2,}ьич|[А-Яа-яёЁ]{2,}\s[ёЁА-Яа-я]{2,}вна|[А-Яа-яёЁ]{2,}\s[ёЁА-Яа-я]{2,}чна
Неужели никак нельзя упростить?
0
158 / 187 / 48
Регистрация: 25.11.2013
Сообщений: 978
29.11.2013, 14:58 6
Comparator.zipТы ищи телефоны, у тебя условие ведь телефон. Приложил подобную вариант, посмотри
1
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 68
29.11.2013, 20:54  [ТС] 7
Цитата Сообщение от DataPlanner Посмотреть сообщение
Вложение 335018Ты ищи телефоны, у тебя условие ведь телефон. Приложил подобную вариант, посмотри
У меня там еще нужно Имя и Отчество найти. В принципе пусть как есть останется. Нормально отрабатывает самое главное...
Спасибо!
0
29.11.2013, 20:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2013, 20:54
Помогаю со студенческими работами здесь

делаем из сотового телефона...
а вот что? что можно из них сделать и куда примостить??? имеется 3 (а может и больше) старых...

Выбор сотового телефона
Всем доброго времени суток. Прошу помочь мне в выборе сотового телефона. Примерно 5000р придел...

Ремонт сотового телефона
Помогите, кто знает Выронил сотовый - потек дисплей. Входящие и исходящие принимает, но пол...

Элементы тех строк матрицы, которые начинаются с отрицательного элемента, записать в отдельный массив
Дана целочисленная матрица A(n*n). Элементы тех строк матрицы А, которые начинаются с...


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

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