Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Philipesko
3 / 3 / 6
Регистрация: 24.02.2014
Сообщений: 70
1

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

31.10.2016, 12:23. Просмотров 2164. Ответов 4
Метки нет (Все метки)

Уважаемые господа, возник вопрос, так как я начинающий прошу сильно не пинать.
Необходимо реализовать построчное считывание следующим образом:
1. Если обнаружено определенное словосчетание, то соответвенно прочитать всю строку или остаток строки при этом игнорируя пробелы между символами. То есть есть:
Есть строка в файле:
Predictive failure 0x0000001
Нужно найти данную строку по названию."Predictive failure" далее считать остаток строки 0x0000001, без учета пробелов.
Буду заранее благодарен если направите в правильную сторону.
Спасибо.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2016, 12:23
Ответы с готовыми решениями:

Чтение построчное из текстового файла в массив
Нужно считать данные из текстового файла в массив. Вроде, как всё считывает, но перезаписывает...

Построчное чтение из текстового файла и вывод
Такой вопрос: у меня есть txt на раб столе в нем есть построчно написанные буквы a b c. Через...

Построчное чтение файла
Здравствуйте. У меня возникла проблема с построчным чтением файла. На форуме так и не нашёл. Суть...

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

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

4
Sanya_sa
Модератор
864 / 773 / 325
Регистрация: 03.02.2015
Сообщений: 5,034
Записей в блоге: 9
Завершенные тесты: 3
31.10.2016, 12:32 2
1) читаем в массив строк (https://msdn.microsoft.com/ru-ru/library/dd383503(v=vs.110).aspx)
2) ищем нужную строку (https://msdn.microsoft.com/ru-ru/library/dy85x1sa(v=vs.110).aspx)
3) ну а 0x0000001 - регулярными вырожениями или по длинне той части строки по которой искали (Predictive failure)
1
bax_tang
.NET senior
434 / 352 / 137
Регистрация: 23.09.2016
Сообщений: 975
Завершенные тесты: 3
31.10.2016, 12:33 3
Лучший ответ Сообщение было отмечено Philipesko как решение

Решение

Philipesko, например, как-то так:

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
// using System;
// using System.IO; // << для StreamReader
 
const string SearchText = "Predictive failure";
string filePath = "..."; // путь к нужному файлу
 
using (StreamReader reader = new StreamReader(filePath, true))
{
    int searchTextLength = SearchText.Length;
    
    string currentLine = reader.ReadLine(); // читаем первую строку из файла
    if (currentLine != null) // если строка считана успешно
    {
        do
        {
            int index = currentLine.IndexOf(SearchText); // выполняем поиск нужной подстроки
            if (index != -1) // если нужная подстрока присутствует
            {
                // извлекаем подстроку для обработки, начиная с позиции index + searchTextLength и до конца исходной строки
                string subline = currentLine.Substring(index + searchTextLength);
                
                // тут обработка строки subline
            }
            
            currentLine = reader.ReadLine(); // читаем следующую строку из файла
        }
        while (currentLine != null); // пока файл не закончится
    }
}
1
Даценд
Модератор
Эксперт .NET
5298 / 4466 / 2869
Регистрация: 20.04.2015
Сообщений: 8,051
31.10.2016, 12:50 4
Ну или:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string keyWord = "Predictive failure";
string fileName = @"c:\folder\file.txt";
using (StreamReader reader = new StreamReader(fileName))
{
    while (!reader.EndOfStream)
    {
        string line = reader.ReadLine();
        if (line.Contains(keyWord))
        {
            string subLine = line.Substring(line.IndexOf(keyWord) + keyWord.Length + 1);
            Console.WriteLine(subLine);
        }
    }
}
0
Philipesko
3 / 3 / 6
Регистрация: 24.02.2014
Сообщений: 70
31.10.2016, 12:51  [ТС] 5
Спасибо за информацию, к сожалению регулярные выражения не подходят, так как 0x00001 не всегда численное занчение и в таком виде, так же размер не всегда фиксированный.
Но все равно спасибо за ответ.
0
31.10.2016, 12:51
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2016, 12:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Построчное чтение txt файла с разделителями
Здравствуйте есть некий файл в котором находятся строки c разделителем (:) задача заключается в...

Построчное чтение из файла. Разделение каждой строки на ФИО, ID и статус
public void getDATA(int PIN)//получить даннные из базы { ...

Построчное чтение файла в консоли - выводятся две строки подряд
Есть текстовый файл, в нём куча строчек. Читаю файл: foreach (string lr in File.ReadLines(path,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.