Yakon Цитата: Я не программист и туго соображаю.
А может лучше пусть программисты этим занимаются (без обид)? Или аватарку смени
А пример кода - это можно.
Код: Imports System.IO
Imports System.Text
Public Class MainForm
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Основные настройки FileSystemWatcher
fsWatch.EnableRaisingEvents = True
fsWatch.NotifyFilter = System.IO.NotifyFilters.LastWrite
fsWatch.SynchronizingObject = Me
End Sub
Private Sub btAction_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btAction.Click
If edFile.Enabled Then
edLog.Text = String.Empty
' Основные настройки FileSystemWatcher
fsWatch.Path = Path.GetDirectoryName(edFile.Text)
fsWatch.Filter = Path.GetFileName(edFile.Text)
' Запускаем слежение!
fsWatch.EnableRaisingEvents = True
edFile.Enabled = False
btAction.Text = "Stop"
Else
fsWatch.EnableRaisingEvents = False
edFile.Enabled = True
btAction.Text = "Start"
End If
End Sub
Private Sub fsWatch_Changed(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles fsWatch.Changed
' Файловый поток
Dim fs As New FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
' Читатель текста из потока (что бы с буферами не возиться).
' Обрати внимание на указание кодировки!
Dim rdr As New StreamReader(fs, Encoding.GetEncoding(1251))
' Построитель строк (можно и без него)
Dim sb As New StringBuilder()
While Not rdr.EndOfStream()
' Вот так делаем если в цикле нужна конкатенация строк - это экономит
' память и время сборщика мусора. Оператор & - фу, лучше String.Append().
sb.AppendLine(rdr.ReadLine())
End While
' Получили результат в окошко.
edLog.Text = sb.ToString()
' А вот так можно и нужно было делать вместо StringBuilder и цикла While
'edLog.Text = rdr.ReadToEnd()
' Закрываем поток
rdr.Close()
End Sub
End Class