dejf111 Ответов: 1

Как написать более одной записи?


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

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

using System;

using System.IO;

using System.Windows.Forms;

namespace mise2
{
    public partial class Form1 : Form
    {


        private String filePath_input = string.Empty;

        public Form1()
        {
            InitializeComponent();
            richTextBox1.AutoSize = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = @"C:\Users\";


            openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            openFileDialog.FilterIndex = 2;
            openFileDialog.RestoreDirectory = true;


            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                filePath_input = openFileDialog.FileName;
                textBox1.Text = filePath_input;
            }
        }


        private
            string FindLineAboveAsterisks(string path)
        {
            TextReader sr = File.OpenText(path);
                return FindLineAboveAsterisks(sr);
        }

        private string FindLineAboveAsterisks(TextReader reader)
        {
            
            string result = reader.ReadLine();
            string line = string.Empty;
            while (result is object && (line = reader.ReadLine()) is object)
            {
                int startIndex = 21;
                int length = 9;

                if (line.Contains("***"))
                {
                    return result;
                }
               
                {
                    result = line.Substring(startIndex, length);
                }
            }
            return string.Empty;
            
        }

         




        private void button2_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = FindLineAboveAsterisks(filePath_input);
        }

}
}

CHill60

Не могли бы вы дать более четкое объяснение того, что этот код пытается сделать

dejf111

Этот код должен быть найден в текстовом документе, который я выбираю в диалоговом окне, затем найдите строку, которая находится над строкой, указывающей "***"далее, он должен обрезать эту строку до выбранных параметров и перечислить все совпадающие в текстовом поле

dejf111

все хорошо, за исключением того, что он перечисляет только один найденный вариант

1 Ответов

Рейтинг:
6

Richard MacCutchan

Ваш код всегда найдет только первую строку в файле. Вы должны создать список<T> текстовых строк по мере чтения файла и вернуть список в вызывающий код. Затем вызывающий абонент может отобразить полученные сведения по мере необходимости.


CPallini

5.

Richard MacCutchan

Спасибо. Я мог бы написать настоящий код, но слишком многие люди уже думают, что разработка-это "копирование и вставка".

dejf111

спасибо я постараюсь