Как задать условие в C# для StreamReader

266
02 июня 2017, 10:07

Делаю парсинг текстового файла. Нужно задать условие: "если строка начинается с числа" и тд. Как это реализовать

Answer 1

Есть такая штука, как String.StartWith(s1, s2); Где s1 строка, которую ты проверяешь, а s2 - подстрока, наличие которой проверяеться в начале

Имеем следующий код:

StreamReader sr = new StreamReader(@puth);  
string buffer; // буфер для считывания строк  
while(!sr.EndOfStream)  
{  
    buffer = sr.ReadLine();
    if (String.StartWith(buffer, i.ToString()) // где і - нужное число, преобразованое в строку
    {
        // выполняешь нужные действия
    }
}
sr.Close();

Так же можно создать метод, который будет выполнять нужные действие в зависимости от содержащего числа в начале считаной строки, например:

public static string DoSomeOperationWithString(string s, string subS)
{
    string result;
    if(subS == "1.1")
    {
        // выполняешь действия, записывая результат в переменную result, потом возвращаешь ее
    }
    else if(subS == "1.2")
    {
        // выполняешь действия, записывая результат в переменную result, потом возвращаешь ее
    }
    return result;
}

Метод вызываешь в теле цикла считывания, вместо if, и проверка осуществляеться непосредственно в методе. Так же можно создать подметоды, котоыре будут вызываться из этого метода. Надеюсь, я овтетил на твой вопрос.

А вообще, ответ на твой вопрос есть вот тут: https://msdn.microsoft.com/ru-ru/library/baketfxw(v=vs.110).aspx

PS: мой первый ответ на StackOverFlow:)

READ ALSO
Алгоритм швидкого сортування [требует правки]

Алгоритм швидкого сортування [требует правки]

Мені потрібно застосувати алгоритм швидкого сортування послідовності, як це написати?

220
Нужно использовать массив в 2 пабликах

Нужно использовать массив в 2 пабликах

Здравствуйте, столкнулся с проблемой, что нужно использовать массив в двух piblic`ах одновременно, не знаю как это сделать, visual studio не находит...

221
Избавиться от рекурсии

Избавиться от рекурсии

Нужно избавиться от рекурсии в данной функции с помощью стека\очередиЗапутался где именно и какие параметры нужно добавлять в очередь

328