Öffen\einlesen von verschiedenen Zeilen aus einer Datei

kanada

Mitglied
Gibt es eine Möglichkeit mehrere Zeilen aus einer x-beliebigen Datei zu laden, zum Beispiel die ersten 30, die letzten 30 und den Rest?

Oder nach bestimmten Schlagwörtern? Ich kenne die untere Variante, die aber nur für einzelne Zeilen funktioniert.

Code:
private void öffnenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog sr = new OpenFileDialog();

            sr.Filter = "php files (*.php) |*.php";
            sr.FilterIndex = 2;
            sr.RestoreDirectory = true;
            string fileName = "";

            if (sr.ShowDialog() == DialogResult.OK)
            {
                fileName = sr.FileName;
                System.IO.StreamReader fsr = new System.IO.StreamReader(fileName);

                string s;
                ArrayList a = new ArrayList();
                while ((s = fsr.ReadLine()) != null)
                {
                    a.Add(s);
                }
                richTextBox2.Text = (string)a[0];
                richTextBox1.Text = (string)a[1];
                richTextBox3.Text = (string)a[2];
            }
        }
 
Ich würde die ganze Datei in ein Array laden. Dann hast du alle Zeilen zur Verfügung und kannst beliebig damit arbeiten:
C#:
string[] aLines = File.ReadAllLines(sr.FileName);
Gruß
MCoder
 
könntest du das etwas genauer an einen simplen Beispiel zeigen, besonders wie ich die Zeilen nachdem ich alle geladen habe verarbeiten kann, danke.
 
Was willst du denn mit den Zeilen machen?
Verwenden kannst du sie etwa so:
C#:
// Eine beliebige Zeile verwenden
string str = aLines[4]; // 5. Zeile

// die ersten 30 Zeilen
if( aLines.Length >= 30 )
{
    for( int i = 0; i < 30; i++ )
    {
        // ...
    }
}

// die letzten 30 Zeilen
if( aLines.Length >= 30 )
{
    for( int i = (aLines.Length - 30); i < aLines.Length; i++ )
    {
        // ...
    }
}

// alle Zeilen
foreach( string str in aLines )
{
    // ...
}
Gruß
MCoder
 
in drei verschiedenen RichTextBoxen laden und dort bearbeiten, da sich drei verschiedene abschnitte in der zu ladenden Datei befinden ...
 
Da kannst du ja das Array in einer Schleife durchlaufen und die gewünschten Zeilen auf die jeweiligen RichTextBoxen verteilen.

Gruß
MCoder
 
Zurück