Feedback

C# - Dateien auf Stichworte scannen

Veröffentlicht von am 06.12.2013
(1 Bewertungen)
Diese Funktion erstellt eine Liste der Vorhandenen Daten in dem angegebenen Verzeichnis und sucht in den gefundenen Daten nach den von ihnen angegebenen Stichworten. Die Stichworte werden von einem , ohne Leerzeichen getrennt.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

public void Scan(string PathToSearch, string Stichworte)
{
List<string> IList = Stichworte.Split(',').ToList();
List<string> FilesInDirectory = Directory.GetFiles(PathToSearch, "*.*",System.IO.SearchOption.AllDirectories).ToList();
for(int i = 0;i != FilesInDirectory.Count;++i)
{
try
{
StreamReader reader = new StreamReader(FilesInDirectory[i]);
string TextInFile = reader.ReadToEnd();
reader.Close();
for(int q = 0;q != IList.Count;++q)
{
if(TextInFile.Contains(IList[q]))
{
// Stichwort gefunden, ihr Code

// Stichwort gefunden, ihr Code 
}
}
}
catch
{}
}
}
Abgelegt unter Suche, Scan, Streamreader.

5 Kommentare zum Snippet

Koopakiller schrieb am 06.12.2013:
1. Lasse die Stichworte als Array übergeben, denn so kann man auch nach Kommas suchen. Das params-Schlüsselwort ist hierfür ebenfalls praktisch.
2. Um de gesamten Text einer Datei einzulesen solltest du File.ReadAllText() oder einen using-Block für den Stream benutzen.
So wird der Stream auch im Fehlerfall wieder geschlossen.
3. Ein Abfangen von Exceptions ohne deren weitere Verarbeitung erschwert oftmals nur die Arbeit, wenn es darum geht einen Fehler zu finden. Löse darum eine neue Exception aus und übergebe die abgefangene als innere Ausnahme.
sita schrieb am 07.12.2013:
Und noch als Idee: Vielleicht als weitere Parameter ein IncludeSubFolders und ein Mask. Als Rückgabewert eine Liste mit Treffern, statt innerhalb der Methode weiter zu arbeiten wäre auch praktischer.
Coder schrieb am 09.12.2013:
Vielleicht könnt ihr mir ja helfen wie rufe ich eine Windows Form in einem neuen Threed auf bei mir gibt das immer eine Fehler Nachricht.
Koopakiller schrieb am 09.12.2013:
@Coder
wenn es nur darum geht eine 2. Form parallel zur ersten anzuzeigen, dann kannst du einfach .Show() statt .ShowDialog() aufrufen. Dadurch kannst du beide Forms weiter benutzen.
Aber auch das direkte aufrufen aus einem 2. Thread heraus sollte funktionieren:
Thread t = new Thread(() =>{
Form1 frm = new Form1();
frm.ShowDialog();
});
t.Start();
Coder schrieb am 24.01.2014:
Vielen Dank
 

Logge dich ein, um hier zu kommentieren!