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

как вывести номер строки,которая удовлетворяет параметрам поиска по файлам?

27.11.2011, 11:09. Показов 1352. Ответов 4
Метки нет (Все метки)

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
using System;
using System.IO;
using System.Linq;
 
class Program
{
    static void Main(string[] args)
    {
 
        try
        {
            var files = from file in Directory.EnumerateFiles(@"M:\",
                            "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file)
                        where line.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line
                        };
 
            foreach (var f in files)
            {
                Console.WriteLine("{0}\t{1}", f.File, f.Line);
         
       
             
            }
            Console.WriteLine("{0} files found.",
                files.Count().ToString());
        }
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
 
 
        Console.ReadLine();
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2011, 11:09
Ответы с готовыми решениями:

Вывести номер первого элемента, который удовлетворяет двойному неравенству
Дан целочисленный массив A размера 10. Вывести номер первого из тех его элементов A, которые...

Вывести номер первого из тех элементов массива, которое удовлетворяет требованию
Дан целочисленный массив A размера 10. Вывести номер первого1|последнего2 из тех его элементов A,...

Массив: Вывести последовательность, которая удовлетворяет условию M [ i + 1 ] = M [ i ]+1.
В произвольном одномерном массиве целых чисел М найти и вывести последнюю последовательность,...

Вывести номер строки, которая содержит наибольший элемент матрицы
Добрый день. Дана матрица А. \begin{Vmatrix} -0,25&11 &4,5 &5 \\ 0&21,4 &1 &6,3 \\ 14,8&2...

4
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
27.11.2011, 11:23 2
На мой взгляд только если во время ReadLines запоминать индексы строк.
Например, создадим вспомогательную структуру:
C#
1
2
3
4
5
6
7
8
9
10
11
        private struct line
        {
            public int num;
            public string text;
 
            public line(int n, string s)
            {
                num = n;
                text = s;
            }
        }
И немного модифицируем запрос:
C#
1
2
3
4
5
6
7
8
            var files = from file in Directory.EnumerateFiles(@"c:\", "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file).Select((str,i) => new line(i, str))
                        where line.text.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line.num
                        };
На этапе чтения строк из файла мы запоминаем строки и индексы, а текст ищем потом уже по данным из коллекции наших структур.
1
3 / 3 / 0
Регистрация: 24.04.2011
Сообщений: 84
27.11.2011, 11:28  [ТС] 3
а что будет являться её номером?что выводить? n?
0
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
27.11.2011, 11:35 4
ReadLines это перечисление всех строк файла. На самом деле в цикле просто поднимается ReadLine(), т.е. строки считываются последовательно. Когда я делаю Select, я использую делегат не только с содержимым элемента, но и с его индексом
Цитата Сообщение от SpawnDDR Посмотреть сообщение
Select((str,i)
Не часто используемый, но иногда жутко полезный делегат. Для того чтобы "очеловечить" значение, можно прибавлять 1 к индексу, так как мы в отличие от машины привыкли считать с 1, т.е. тут немного изменяем:
Цитата Сообщение от SpawnDDR Посмотреть сообщение
new line(i, str))
C#
1
new line(i+1, str))
Ну или в структуре на конструкторе можно тоже самое сделать.
0
3 / 3 / 0
Регистрация: 24.04.2011
Сообщений: 84
27.11.2011, 11:39  [ТС] 5
да,я уже изменила на +1 сразу)
спасибо!
0
27.11.2011, 11:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2011, 11:39
Помогаю со студенческими работами здесь

Как узнать номер следующей строки в DataGridView и вывести номер в textbox
Допустим у нас есть таблица и в ней заполнено две строки, тогда в текстбоксе мы должны получить...

Найти строку минимальной длины, которая удовлетворяет обоим шаблонам, либо выдать сообщение, что такой строки нет
Шаблоном называется строка, состоящая из английских букв (a, ..., z, A, ..., Z) и символов ? и *....

Определить номер строки, содержащей положительные числа, и вывести номер строки
В двумерном массиве определить номер строки, содержащих положительные числа и вывести номер строки....

QListView: как определить номер строки, которая выбрана нажатием мышки
подскажите, как определить номер строчки которая выбрана нажатием мышки


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

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