Wie kann ich eine sehr lange Zeichenfolge aus einer Textdatei lesen und sie dann verarbeiten (in Wörter aufgeteilt)?Wie teilt man eine riesige Datei in Wörter?
Ich versuchte die StreamReader.ReadLine()
Methode, aber ich bekomme eine OutOfMemory
Ausnahme. Anscheinend sind meine Linien extrem lang. Dies ist mein Code für das Lesen von Datei:
using (var streamReader = File.OpenText(_filePath))
{
int lineNumber = 1;
string currentString = String.Empty;
while ((currentString = streamReader.ReadLine()) != null)
{
ProcessString(currentString, lineNumber);
Console.WriteLine("Line {0}", lineNumber);
lineNumber++;
}
}
Und der Code die Zeile in Worte teilt:
var wordPattern = @"\w+";
var matchCollection = Regex.Matches(text, wordPattern);
var words = (from Match word in matchCollection
select word.Value.ToLowerInvariant()).ToList();
Welchen Algorithmus/welche Methode haben Sie für den Splitvorgang verwendet? – byako
@byako, hier ist Methode, die ich für diesen Einsatz: 'public static IEnumerable GetLowercasedWords (string text) { if (String.IsNullOrEmpty (Text)) { return null; } var wordPattern = @ "\ w +"; var matchCollection = Regex.Matches (text, wordPattern); var words = (aus Übereinstimmungswort in matchCollection word.Value.ToLowerInvariant() auswählen). ToList(); Rückworte; } Sorry für die Formatierung. –
Fügen Sie besser hinzu, wie Sie den StreamReader tatsächlich implementiert haben, damit die Leute dort Fehler finden. Für Fragen gibt es keine 140 Zeichen. – Jens