Przeszukiwanie pliku tekstowego

0

Witam,
Chciałbym prosić o pomoc przy operacjach na plikach tekstowych a konkretnie jego przeszukiwaniu.
Otóż mój problem polega na tym, że chcę aby mój program przeszukał plik txt w poszukiwaniu wyrazu z textboxa i jeżeli znajdzie to słowo, żeby ustawił kursor w pliku na tym słowie i wypisał w ritchtextbox wszystko poniżej tego słowa.
Dodam, że do odczytu plików używam StreamReadera. Proszę o pomoc

0

Pokaż kod, który napisałeś do tej pory.

0

To jest część kodu którą napisałem. Po wciśnięciu buttona pobierana jest ścieżka do pliku i w textboxy zostają ustawione dane pierwszej linijki z pliku. W timerze co sekundę sprawdzany jest warunek, który jak jest spełniony pobiera następną linijkę z pliku. Teraz chcę zrobić, żeby timer co sekundę sprawdzał czy w pliku istnieje wyraz podany w textboxie6. jeżeli tak to żeby przeniósł linie do tego słowa i pobrał następną linijkę po tym słowie.

StreamReader st;
string line;
private void button5_Click(object sender, EventArgs e)
{
var file = new OpenFileDialog();
if (file.ShowDialog() == DialogResult.OK)
{
st = new StreamReader(file.FileName, Encoding.GetEncoding("ISO-8859-2"));

    textBox1.Clear();
    textBox2.Clear();
    textBox3.Clear();
    textBox4.Clear();
    textBox5.Clear();
    line = st.ReadLine();
    string[] words = line.Split(':');
    textBox1.Text = words[0];
    int txtbox = Int32.Parse(textBox1.Text);
    textBox1.Clear();
    textBox1.Text = txtbox.ToString();
    textBox2.Text = words[1];
    textBox3.Text = words[2];
    textBox4.Text = words[3];
    textBox5.Text = textBox1.Text + ":" + textBox2.Text + ":" + textBox3.Text;
}

}
int licz1;
private void napisytim_Tick(object sender, EventArgs e)
{
label3.Visible = true;

            if (textBox6.Text == textBox5.Text)
            {
                licz1++;
                if (licz1 == 1)
                {
                    label3.Text = textBox4.Text;

                }
                else if (licz1 != 1)
                {
                    label3.Text = "";

                    textBox1.Clear();
                    textBox2.Clear();
                    textBox3.Clear();
                    textBox4.Clear();
                    textBox5.Clear();
                }
                    line = st.ReadLine();
                    string[] words = line.Split(':');
                    textBox1.Text = words[0];
                    int txtbox = Int32.Parse(textBox1.Text);
                    textBox1.Clear();
                    textBox1.Text = txtbox.ToString();
                    textBox2.Text = words[1];
                    textBox3.Text = words[2];
                    textBox4.Text = words[3];
                    textBox5.Text = textBox1.Text + ":" + textBox2.Text + ":" + textBox3.Text;
                    if (licz1 != 1)
                    {
                        label3.Text = textBox4.Text;
                    } 
            }
0

Problem rozwiązany. Jeśli ktoś miałby kiedyś z tym problem to zamieszczam rozwiązanie:

string[] lines = File.ReadAllLines("plik");
foreach (string line in lines)
{
if (line.StartsWith(""))
{
W1
}
else
{
W2
}
}
Do tablicy pobierany jest cały plik i wyszukiwany jest wyraz. Jeżeli jest znaleziony to wykona "W1", jeżeli nie to wykona "W2".

0

Nie prościej tak (pseudokod):
string contentOfFile = CzytajPlik();
string substring = contentOfFile.substring(contentOfFIle.indexof("słowo"), "słowo".length);
Można to połączyć z funkcją where i wychodzi nam jednolinijkowiec.

1 użytkowników online, w tym zalogowanych: 0, gości: 1