С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 25

Извлечение определённой строки из txt файла

12.05.2013, 00:06. Показов 1736. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот код чтения файла и добавления в datagridview строк какое условие надо дописать чтобы он добавлял в datagridview только ту строку в которой есть определённое слово или выражение, а другие пропускал

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
 public void Read()
        {
            string data = "";
            string groupOD = "";
            data = OtGroup.data;
           
            if (File.Exists("Изменения.txt"))
            {
                
                Console.WriteLine("============================");
                FileStream fstr = new FileStream("Изменения.txt", FileMode.Open, FileAccess.Read);
                StreamReader streamRd = new StreamReader(fstr, Encoding.Default);
                string xLine = "";
                while ((xLine = streamRd.ReadLine()) != null)
                {
                    Console.WriteLine(xLine);
                    lineList.Add((xLine));
                }
 
                streamRd.Close();
                if (lineList.Count != 0)
                {
                    groupOD = OtGroup.groupO;
                    Console.WriteLine("----------заполняем allList после чтения файла--------------");
                    for (int i = 0; i < lineList.Count; i++)
                    {
                        allList.Add(SplitArray(Convert.ToString(lineList[i])));
 
 
 
                       
                            dataOtG.Rows.Add(allList[i][0], allList[i][1], allList[i][2], allList[i][3], allList[i][4]);
                           
                        
                    }
 
                    
                }
                
            }
         
            Console.WriteLine("Read allList.Count " + allList.Count);
           
        }
 
 
        public ArrayList SplitArray(string str)
        {
            ArrayList list = new ArrayList();
            string razdel = "^";
            if (str != null)
            {
                string[] dest = str.Split(razdel.ToCharArray());
                foreach (string d in dest)
                {
                    list.Add(d);
                }
                return list;
            }
            else
            {
                return list;
            }
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2013, 00:06
Ответы с готовыми решениями:

Извлечение определённой строки из txt файла
Помогите пожалуйста. Скажите как прочитать из файла строку тока с определённым названием. Например в файле несколько строк: 25.04...

Загрузка в DataGridView определённой строки из txt-файла
Здравствуйте. Есть код, который загружает все строки текстового файла в DataGridView : ... if (OpenTags.ShowDialog() ==...

Извлечение из файла .txt не всей строки, а посимвольно
Добрый день, уважаемые форумчане. Что-то не хватает мозга допетрить. Вопрос в следующем. Существует файл .txt, в нем данные в виде: ...

17
12.05.2013, 00:09

Не по теме:

Никогда не понимал - неужели так тяжело поместить ваш код в тэги дабы облегчить понимание кода человеку, который возможно захочет вам помочь?

1
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 25
12.05.2013, 00:20  [ТС]
если бы я знал как поместить код в теги, то поместил бы
0
 Аватар для Vemp
23 / 23 / 3
Регистрация: 18.06.2012
Сообщений: 61
12.05.2013, 00:39
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
public void Read()
{
string data = "";
string groupOD = "";
data = OtGroup.data;
 
if (File.Exists("Изменения.txt"))
{
 
Console.WriteLine("============================");
FileStream fstr = new FileStream("Изменения.txt", FileMode.Open, FileAccess.Read);
StreamReader streamRd = new StreamReader(fstr, Encoding.Default);
string xLine = "";
while ((xLine = streamRd.ReadLine()) != null)
{
Console.WriteLine(xLine);
lineList.Add((xLine));
}
 
streamRd.Close();
if (lineList.Count != 0)
{
groupOD = OtGroup.groupO;
Console.WriteLine("----------заполняем allList после чтения файла--------------");
for (int i = 0; i < lineList.Count; i++)
{
allList.Add(SplitArray(Convert.ToString(lineList[i])));
 
 
 
 
dataOtG.Rows.Add(allList[i][0], allList[i][1], allList[i][2], allList[i][3], allList[i][4]);
 
 
}
 
 
}
 
}
 
Console.WriteLine("Read allList.Count " + allList.Count);
 
}
 
 
public ArrayList SplitArray(string str)
{
ArrayList list = new ArrayList();
string razdel = "^";
if (str != null)
{
string[] dest = str.Split(razdel.ToCharArray());
foreach (string d in dest)
{
list.Add(d);
}
return list;
}
else
{
return list;
}
}
это так, просто ваш код в читабельный вид привел
1
29 / 29 / 8
Регистрация: 16.10.2012
Сообщений: 170
12.05.2013, 01:26
C#
1
2
3
4
5
6
7
8
9
10
            string seek = textBox1.Text;// твое слово
            foreach (string line in File.ReadLines(path))
            {
                if (line.Contains(seek))
                {
                    
 
                    // выполняешь что тебе нужно есть в файле есть строка с таким словом 
                }
            }
0
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 25
12.05.2013, 01:30  [ТС]
Цитата Сообщение от Dot_mmoru Посмотреть сообщение
string seek = textBox1.Text;// твое слово
* * * * * * foreach (string line in File.ReadLines(path))
* * * * * * {
* * * * * * * * if (line.Contains(seek))
* * * * * * * * {
// выполняешь что тебе нужно есть в файле есть строка с таким словом
* * * * * * * * }
* * * * * * }
это делать после мого чтения? перед тем как я вставляю строку?
0
29 / 29 / 8
Регистрация: 16.10.2012
Сообщений: 170
12.05.2013, 01:33
конечно
0
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 25
12.05.2013, 01:38  [ТС]
Цитата Сообщение от FlashLit Посмотреть сообщение
for (int i = 0; i < lineList.Count; i++)
* * * * * * * * * * {
* * * * * * * * * * * * allList.Add(SplitArray(Convert.ToString( lineList[i])));
dataOtG.Rows.Add(allList[i][0], allList[i][1], allList[i][2], allList[i][3], allList[i][4]);
}
а если у меня добавление строки уже в цикле? можете поточнее сказать куда вставлять или вообще вместо этого цикла?
0
Эксперт .NET
 Аватар для Wolfdp
3789 / 1766 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
12.05.2013, 06:47
C#
1
2
3
4
5
6
while ((xLine = streamRd.ReadLine()) != null)
{
    Console.WriteLine(xLine);
    if (line.Contains(seek))
    { lineList.Add((xLine)); }
}
1
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 25
12.05.2013, 14:39  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
if (line.Contains(seek))
line это моё xline??

Добавлено через 4 минуты
он у меня всё равно добавляет все строки((
0
Эксперт .NET
 Аватар для Wolfdp
3789 / 1766 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
12.05.2013, 17:48
seek - это слово,которое должно присутствовать.
0
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 25
12.05.2013, 18:59  [ТС]
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
public void Read()
        {
            string data = "";
            string seek = "";
            data = OtGroup.data;
           
            if (File.Exists("Изменения.txt"))
            {
                
                Console.WriteLine("============================");
                FileStream fstr = new FileStream("Изменения.txt", FileMode.Open, FileAccess.Read);
                StreamReader streamRd = new StreamReader(fstr, Encoding.Default);
                string xLine = "";
                while ((xLine = streamRd.ReadLine()) != null)
                {
                    seek = OtGroup.groupO;
                    Console.WriteLine(xLine);
 
                    if (xLine.Contains(seek))
                    { lineList.Add((xLine)); }
                   
                }
 
                streamRd.Close();
                if (lineList.Count != 0)
                {
                   
                    Console.WriteLine("----------заполняем allList после чтения файла--------------");
                    for (int i = 0; i < lineList.Count; i++)
                    {
                        allList.Add(SplitArray(Convert.ToString(lineList[i])));
 
 
 
                      
                            dataOtG.Rows.Add(allList[i][0], allList[i][1], allList[i][2], allList[i][3], allList[i][4]);
                      
                    }
 
                    
                }
в чём ошибка почему добавляет все строки?
0
Эксперт .NET
 Аватар для Wolfdp
3789 / 1766 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
12.05.2013, 20:16
Цитата Сообщение от FlashLit Посмотреть сообщение
string seek = "";
Если искать пустую строчку, то всегда будет возвращать true. Тут должно быть что-то "осмысленное", например

string seek = "Nya!";
0
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 25
12.05.2013, 21:52  [ТС]
Цитата Сообщение от FlashLit Посмотреть сообщение
seek = OtGroup.groupO;
я же потом присваиваю этой переменной значение. Или надо присваивать при объявлении переменной?
0
Эксперт .NET
 Аватар для Wolfdp
3789 / 1766 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
12.05.2013, 23:38
Цитата Сообщение от FlashLit Посмотреть сообщение
я же потом присваиваю этой переменной значение. Или надо присваивать при объявлении переменной?
Да нет, всё дожно работать коректно. Что могу посоветовать - поставить точку остановки на while ((xLine = streamRd.ReadLine()) != null) и пройтись дэбагом, попутно смотря значения seek = OtGroup.groupO; и if (xLine.Contains(seek)).

Плюс, я не совсем вникал в суть кода, возможно я не туда впихнул проверку.
0
MЫW
 Аватар для phantom96
124 / 109 / 9
Регистрация: 15.02.2013
Сообщений: 538
12.05.2013, 23:59
Цитата Сообщение от Wolfdp Посмотреть сообщение
Если искать пустую строчку, то всегда будет возвращать true. Тут должно быть что-то "осмысленное", например

string seek = "Nya!";

Не по теме:

Гениальный пример осмысленного стринга :=)

0
13.05.2013, 00:01

Не по теме:

Цитата Сообщение от phantom96 Посмотреть сообщение
Гениальный пример осмысленного стринга :=)
Цитата Сообщение от phantom96 Посмотреть сообщение
"осмысленное"
было взято в кавычки не просто так ;-)

0
Заблокирован
13.05.2013, 00:04
Цитата Сообщение от FlashLit Посмотреть сообщение
если бы я знал как поместить код в теги, то поместил бы
https://www.cyberforum.ru/abou... 03521.html Теперь будешь знать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2013, 00:04
Помогаю со студенческими работами здесь

Как считать данные из txt файла, из определенной строки,столбца?
i=0 Do Until EOF(2) Line Input #2, mytext Dannie(i)=mytext i=i+1 loop Наверняка необязательно заполнять массив...

Извлечение данных из .txt файла
Как извлечь данные из .txt файла, чтобы потом с ними можно было работать?(сравнивать, складывать и т.д.)

Удаление определённой строки из .txt
Искал на форуме, так должного ответа и не нашёл... Как из .txt удалить определённую строку... Известно: номер строки, и содержание...

Переписывание определённой строки в txt
Делаю класс конфигурирования. using System; using System.Collections.Generic; using System.Text; using System.IO; ...

Считывание определенной строки txt
Собственно как считать определенную строку из txt файла. допустим у меня есть: Игорь Анна Маша Федор Нужно прочитать...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru