StringBuilder oder StringCollection
-
Hallo!
Ich möchte eine Textdatei Zeile für Zeile laden, diese dann durchsuchen und Teile davon herauskopieren, aber auch bestimmte Textabschnitte ersetzen können. Ich bin mir nun nicht sicher ob ich dafür auf die StringBuilder oder die StringCollection Klasse zurückgreifen soll. Die Operation ist zeitkritisch. Es macht mir nichts aus mehr Code zu schreiben, ich möchte aber auch nicht unbedingt unnötig viel Code schreiben.
Danke schon mal im Voraus!
-
StringCollection hört sich Doch gut an der speichert doch wie der Klassenname schon sagt eine Menge von Strings!
Jede Zeile also ein extra String (Datei zeilenweise einlesen und damit ein konkretes StringCollection - Object bilden. Ich wette du könntest dann auch über das StringCollection - Object direkt ablesen wiviele Zeilenumbrüche die Datei enthält. Also der Ansatz StringCollection klingt sher vielversprechend.
mfg sclearscreen
-
Beispiel:
// hoffe jetzt ich habe hier kein using vergessen using System; using System.Collection; using System.Collection.Specialized; System.IO.StreamReader streamReader = new System.IO.StreamReader(@"C:\text.txt"); StringCollection stringCollection = new StringCollection(); String zeile; while((zeile = streamReader.ReadLine()) != false) { stringCollection.Add(zeile); } int ZeilenAnzahl = stringCollection.Count;
-
Zeile fuer Zeile untersuchen kannst Du die Zeilen mit "Regulären Ausdrücken"
da gibts auch ne Klasse:System.Text.RegularExpressions.Regex regex = new Regex(DeinEinzelnerString, RegulärerAusdruck); if(regex.IsMatch() == true) .... // gefunden in Zeile else ... // nicht gefunden in Zeile
Der Code sieht doch kurz aus oder? Da kannst du auch noch ne Schleife rundrumbauen
Der Parameter "RegulärerAusdruck" ist auch ein Objekt vom Typ String
so etwa als beispiel:String RegulärerAusdruck = @".+@.+.+"; // damit könnte man nach Emailaddressen suchen
mfg sclearscreen
-
String RegulärerAusdruck = @".+@.+.+"; // damit könnte man nach Emailaddressen suchen
muss so aussehen
String RegulärerAusdruck = @".+@.+\..+"; // damit könnte man nach Emailaddressen suchen
dann findet man auch Strings die zum Muster einer gültigen Mailaddresse passen
mfg
-
Vielen Dank für die Antwort mit den vielen Beispielen. Ich habe schon begonnen meinen StringCollection-spezifischen Code zu tippen :).
-
Oben in meinen Posting wo ich aus der Datei lesen!
Da muss noch nentry { while((zeile=streamReader.ReadLine()) != false) { . . . } } catch(OutOfMemoryException noMemory) { . . . } catch(IOException ioException) { . . . }
drumrum da ReadLine laut MSDN - Hilfe ne oder 2 Exception werfen kann
gib einfach mal in der Hilfe ReadLine ein und guck dann bei den Hilfetreffern unter StreamReader.ReadLine-Methode
Schaud dort mal den Abschnitt Ausnahmen an!!!mfg sclearscreen
P.S.: Sichere Software muss soviele Fehler wie möglich sicher händeln können
und stabil bleiben