Hallo,
ich muß eine sehr große Ascii-Datei einlesen und in umgekehrter Reihenfolge wieder ausgeben. Im konkreten Beispiel ist die Datei 380MB groß und hat 16 Millionen Zeilen. Es wird aber auch noch größere Dateien geben.
Ich habe etwas programmiert, was prinzipiell zu funktionieren scheint. Aber das Programm ist sehr langsam. Ich bekomme sogar Meldungen "ContextSwitchDeadlock wurde erkannt, die CLR konnte 60Sek lang keinen Übergang vom COM-Kontext..."
Wie sollte das Programm aufgebaut sein ? Ist es überhaupt schlau, die einzulesende Datei in einer Collection zu speichern ?
Danke für Eure Hilfe
CodeTags gesetzt ~VaporiZed
ich muß eine sehr große Ascii-Datei einlesen und in umgekehrter Reihenfolge wieder ausgeben. Im konkreten Beispiel ist die Datei 380MB groß und hat 16 Millionen Zeilen. Es wird aber auch noch größere Dateien geben.
Ich habe etwas programmiert, was prinzipiell zu funktionieren scheint. Aber das Programm ist sehr langsam. Ich bekomme sogar Meldungen "ContextSwitchDeadlock wurde erkannt, die CLR konnte 60Sek lang keinen Übergang vom COM-Kontext..."
Wie sollte das Programm aufgebaut sein ? Ist es überhaupt schlau, die einzulesende Datei in einer Collection zu speichern ?
VB.NET-Quellcode
- Dim zeile As New Collection
- 'Laden:
- Dim datei As New IO.StreamReader(Dateiname_Laden, System.Text.Encoding.Default)
- i = 0
- Do
- temp = datei.ReadLine()
- zeile.Add(temp)
- If IsNothing(temp) Then Exit Do
- i = i + 1
- Loop
- datei.Close()
- 'Speichern:
- Dim datei As IO.StreamWriter
- datei = New IO.StreamWriter(Dateiname_Speichern, False, System.Text.Encoding.Default)
- For i = zeile.Count To 1 Step -1
- datei.WriteLine(zeile.Item(i))
- Next
- src.Close()
Danke für Eure Hilfe
CodeTags gesetzt ~VaporiZed
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()