André Bif Ответов: 3

Как получить конкретное предложение в строке текстового файла?


В visual C# кнопка, которую я реализую, должна прочитать файл .txt и проверить, заканчивается ли каждая строка в текстовом файле определенным символом, и если да, то она берет имя этой строки и печатает его в поле сообщения. До сих пор мне удавалось сделать условие, чтобы проверить, существует ли указанный символ в конце строки, но я не могу получить его имя, так как он находится между двумя наборами чисел. Имя находится сразу после первого символа в строке и непосредственно перед началом набора чисел, так как они являются идентификатором пользователя.


А это текстовый файл:

1Paulo111.111.111-11addaqwe2
2Rambo425.433-628-43ererssd3
1Momba111.111.111-11asdsad4432
1Mauricio111.111.111-22wwcssfd2
1Saulo111.111.111-11qwe1231231


Таким образом, кнопка должна проверить, заканчивается ли текущая строка на "2", и напечатать имя в строке. Имя в первой строке, например, Пауло, и поскольку оно заканчивается на "2"," Пауло " будет напечатано в почтовом ящике, как и третья и четвертая строки. В противном случае он перескочит на следующую строку. Затем в почтовом ящике будет напечатано: "Пауло, Момба, Маурисио."

Как я могу это сделать?

Что я уже пробовал:

Это мой код до сих пор внутри кнопки:

private void button1_Click(object sender, EventArgs e)
    {
        string line, lastchar;
        // Read the file and display it line by line.
        System.IO.StreamReader file = new System.IO.StreamReader(@"rato.txt");
        while ((line = file.ReadLine()) != null)
        {
            lastchar= line.Substring(line.Length - 1, 1);
            if (lastchar== "2") MessageBox.Show("Prints the name of the user here");
        }
        file.Close();
    }

PIEBALDconsult

Попробуй Стринг.Расщеплять

3 Ответов

Рейтинг:
2

Patrice T

Вы знаете, как проверить последний символ
чтобы найти слово:
-вам нужно найти первую цифру после второго места в строке с петлей
- тогда, как только вы узнаете, где заканчивается слово, его будет легко извлечь.

Вы также можете прибегнуть к регулярным выражениям (регулярным выражениям)

Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
Это показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]


Рейтинг:
2

Jawad Ahmed Tanoli

string line, lastchar;
       // Read the file and display it line by line.
       System.IO.StreamReader file = new System.IO.StreamReader("a.txt");
       while ((line = file.ReadLine()) != null)
       {
           lastchar= line.Substring(line.Length - 1, 1);
           if (lastchar.Equals("2"))
           {
               var splitString = line.Split('.');

   string nameToPrint = splitString[0].Substring(1, splitString[0].Length - 4);           
 MessageBox.Show("Prints the name of the user here: "+ nameToPrint );
           }


       }
       file.Close();


Рейтинг:
1

Peter Leow

Вы должны учиться:
1. Как сформулировать Шаблоны регулярных выражений, Google найдет ваши многочисленные онлайн-учебники.
2. Как реализовать регулярное выражение в C# задать Класс Регулярных Выражений (System. Text.RegularExpressions)[^]
Изучите следующий пример и адаптируйте его к вашим требованиям:

using System;
using System.Text.RegularExpressions;

public class Program
{
	public static void Main()
	{
		const string pattern = @"(?<=\d)[a-zA-Z]+(?=\d{3}[.]\d{3}[.]\d{3}-.+2$)";
		string[] users = new string[5]
		{
			"1Paulo111.111.111-11addaqwe2",
			"2Rambo425.433-628-43ererssd3",
			"1Momba111.111.111-11asdsad4432",
			"1Mauricio111.111.111-22wwcssfd2",
			"1Saulo111.111.111-11qwe1231231"
		};

		foreach (string user in users)
		{
			Match m = Regex.Match(user, pattern);
			if(m.Success) Console.WriteLine(m.Value);
		}
	}
}

Попробуйте это онлайн здесь Главная | .Чистая Скрипка[^]