Feedback

C# - Zeile in Datei finden

Veröffentlicht von am 06.08.2014
(0 Bewertungen)
Methode um eine bestimmte Zeile mit bestimmten String-Inhalt zu finden.

Beispiel:
int zeile_sqlserver = findeZeile("-sqlserver=")

GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) - Komplett 

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

public static int findeZeile(String settings_key)
        {
            int position = 0;

            try
            {
                int counter = 0;
                String temp = "";
                bool found = false;

                //Datei laden und schritt für Schritt lesen wo der String sich befindet
                StreamReader Reader1 = new StreamReader(EinstellungsSetPfad);
                StreamReader Reader2 = new StreamReader(EinstellungsSetPfad);

                while (Reader1.ReadLine() != null && found != true)
                {
                    temp = Reader2.ReadLine();

                    if (temp.Contains(settings_key))
                    {
                        position = counter;
                        found = true;
                    }
                    else
                    {
                        counter++;
                    }
                }
                //

                return position + 1;
            }
            catch (Exception ex)
            {
                return 0;
            }
        }
Abgelegt unter file, zeile, datei, finden.

1 Kommentare zum Snippet

Koopakiller schrieb am 06.08.2014:
Ein paar Anmerkungen/Fragen zu deinem Snippet:
1.) Warum 2 Streamreader? Einer reicht.
2.) Es ist besser eine Exception weiter zu leiten. Einfach 0 zurück zu geben verbirgt nur den wahren Fehler und du bekomsmt ihn vielleicht nie mit.
3.) Irgend etwas deutsch zu benennen finde ich sowieso seltsam, da es aus der Reihe tanzt. Noch seltsamer finde ich es eigene Dinge mal de mal en zu benennen.
4.) Ich fände es besser eine Art LINQ-Methode dafür zu schreiben. Denn eine Datei komplett neu einzulesen, nur um einen Index zu finden ist i.d.R. sinnlos leistungsfressend. Mit einer Methode, die ein IEnumerable<T> durchsucht könntest du die Datei mit File.ReadLines lesen und sobald ein Vorkommen gefunden wurde den Index zurück geben. Die weiteren Zeilen würden hier nicht mehr gelesen werden. So könnte die Methode aussehen:
public static int FindFirstMatch(this IEnumerable<string> source, string settings_key)
{
int lnCount = -1;
foreach (var ln in source)
{
++lnCount;
if (ln.Contains(settings_key))
break;
}
return lnCount;
}
 

Logge dich ein, um hier zu kommentieren!