2013-04-05 5 views
4

Я новичок в программировании, и я столкнулся с проблемой, и я не уверен, как с этим бороться.Чтение из текстового файла и обновление

Я использую линию

textBox2.Text = System.IO.File.ReadAllText(path); 

Для чтения из текстового файла и вставить содержимое в TextBox2.

Теперь проблема в том, что текстовый файл, который я пытаюсь прочитать, представляет собой большой (пару мегабайт) текстовый файл. Этот текстовый файл содержит журналы из программы, новые записи всегда добавляются в нижней части файла.
Теперь я хочу обновить textBox2, если текстовый файл обновлен. Однако я не уверен, как это сделать эффективным образом. Один из способов - просто прочитать весь текстовый файл еще раз, но поскольку текстовый файл настолько велик, это очень медленный процесс.

Я заинтересован в поиске другого и более быстрого способа справиться с этим. Меня не интересует точный код, я просто надеялся выяснить, в каком направлении я должен смотреть, и какие варианты я могу рассмотреть.

+0

вы не хотите, чтобы прочитать содержимое в TextFile, вы должны прочитать содержимое в список или при необходимости чтения в RitchText поле также указывается, что разделитель, а – MethodMan

ответ

8

Ну, две очевидные вещи, которые вы можете проверить:

Если следить за тем, вы должны иметь возможность обнаруживать, когда файл изменился - по крайней мере, с разумной степенью уверенности.

Кроме того, вы можете использовать FileSystemWatcher, чтобы следить за изменениями.

Кроме того, вам может потребоваться отслеживать, где вы читали, чтобы вы могли просто читать новые данные, ища нужное место в файле.

И, наконец, TextBox не может быть лучшим пользовательским интерфейсом для огромного файла журнала. Если это структурированный файл журнала, было бы хорошо иметь эту структуру, представленную в пользовательском интерфейсе - например, одну строку в таблице на запись в журнале, потенциально с параметрами фильтрации и т. Д.

+0

+1 для 'FileSystemWatcher' –

+0

мысли : если я получаю уведомление каждый раз, когда файл изменяется, я могу получить много уведомлений, если это файл журнала, и каждая строка журнала очищается на диск. Тем не менее, он должен проверять только каждые X секунд, верно? –

+0

Благодарим вас за ответ. Вы сказали: «Кроме того, вы можете подумать о том, чтобы отслеживать, где вы читали, чтобы вы могли просто читать новые данные, пытаясь найти нужное место в файле». У вас есть какие-либо советы по этому поводу? – Brick

1

Вы можете проверить каждый X секунд. Если файл изменился, обновите, если нет, ничего не сделайте. Вы можете сохранить время изменения файла, чтобы узнать, изменилось оно или нет.

Смежные вопросы