Szybkie czytanie dużych plików.

0

No więc pytanie, w jaki sposób szybko przeczytać plik z 230 000 lini? (46MB)
Zauważyłem, że Readline kompletnie się do tego nie nadaje...

0

46MB to nie tak dużo w dzisiejszych czasach; możesz wczytać cały plik do pamięci - System.IO.File.ReadAllLines i wtedy biegać po zawartości w tablicy w pamięci.

0

To co wczytasz to tablica linii z pliku. Więc iterujesz do woli po tej tablicy.

0

Spłodziłem coś takiego:

var timethen = DateTime.Now;
            string[] lines = File.ReadAllLines("HiveExt.log");
            string[] splitted;
            var timenow = DateTime.Now;
            var timeresult = timenow - timethen;
            int y = 0;

            while (y != lines.Length)
            {
                splitted = lines[y].Split(' ');
                listView1.Items.Add(splitted[0]);
                for (int x = 1; x < splitted.Length; x++)
                {
                    listView1.Items[y].SubItems.Add(splitted[x]);
                }
                y++;
            }

            MessageBox.Show(timeresult.Milliseconds.ToString(), y.ToString());

Nadal nieco wolne...

0

Może ListView jest temu winny. Spróbuj wsadzić to dodawanie itemów między Suspend i ResumeLayout.

0

jak dodajesz do listview kilkaset tysięcy itemów, to nie dziwię się, że wolne.
jako że robisz to bez dość podstawowej wiedzy przy takim zagadnieniu, to dziwię się, że nie zestarzałeś się czekając na zakończenie operacji. użyj BeginUpdate i EndUpdate na listboksie RAZ przed i RAZ po zakończeniu dodawania itemów. czyli przed pętlą while dajesz listView1.BeginUpdate(), a to drugie dajesz po zakończeniu pętli.

0

Próbowałem ostatnio z powolnością ListView walczyć. Niestety, BeginUpdate()/EndUpdate(), czy nawet pojedyncze AddRange() zamiast pętli z Add() wiele nie pomagają. Choć zawsze trochę...

0

A mam pytanie? Może trochę głupie, bo nie znam się na C#, ale nie było by dobrze wyświetlić wpierw np. 1000 linii a potem zrobić lazy load kolejnych?

0

Jak mam przekształcić swój kod bym mógł dodawać w trybie virtual?

0
pret0rian napisał(a):

Jak mam przekształcić swój kod bym mógł dodawać w trybie virtual?

Start/Uruchom
virtual virtual
Uwaga, nie działa pod Windows 8

1 użytkowników online, w tym zalogowanych: 0, gości: 1