| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > Считать файл и передать в MySQL |
| Автор: mashutkai 30.4.2009, 05:28 |
| Здравствуйте. Помогите пожалуйста написать такую программу: надо чобы программа каждые 5 секунд считывала файл построчно и если он изменился, записывать новую строку в MySQL на удалённый сервер, а не достающие - удалять. С начала помогите считать файл в переменную или в массив и вывести хотябы через MsgBox. Делаю это в VB 2008 Express |
| Автор: -Mikle- 30.4.2009, 09:16 |
| Во первых, считывание каждые 5 секунд очень плохо. Нужно ловить системное событие об этом моменте. Для таких целей служит компонент FileSystemWatcher, кинешь на форму и разберешься, он прост. Во вторых, для считывания файла нужно проверить сначала, можешь ли ты иметь к файлу непрерывный доступ для чтения. Под непрерывным я подразумеваю типа открыл поток к файлу в начале программы и закрыл его в конце. Это нужно для того, чтоб определить, как ты будешь работать с потоком файла, либо единожды его открыв и потом используя, либо открывать его каждый раз, как только произойдет изменение. В третьих, для самого считывания, нужно иметь переменную Long. Значение переменной будет говорить о последней удачно прочитанной позиции в файле. Ее значение нужно обновлять только тогда, когда ты прочитал строку и записал ее в БД. Значение этой переменной нужно еще сохранить снаружи программы (в настройках или еще где-нить) сразу же, после ее обновления. Для построчного чтения из файла лучше использовать StreamReader (Imports System.IO). Надеюсь, что здесь все предельно понятно. Если будет что-то не получаться пиши. Добавлено через 35 секунд Кстати, а что ты пишешь? |
| Автор: mashutkai 30.4.2009, 11:39 |
| Считать у меня получилось, но теперь не могу разобраться с FileSystemWatcher. Можете дать мне какой-нибудь пример плз |
| Автор: -Mikle- 30.4.2009, 13:01 |
| Свойства: EnableRaisingEvents - нужно для того, чтобы приостановить/продолжить отслеживание. По умолчанию имеет значение True (отслеживать). Filter - задает маску имени фйлов, которые будут отслеживаться системой. Допустимо указать имя файла полностью для отслеживания только его (например, myfile.txt) IncludeSubdirectories - указывает на то, нужно ли включать в отслеживание вложенные папки. NotifyFilter - набор флагов ограничивающих тип слежения. Допустимо указывать несколько флагов, например, если указать FileSystemWatcher1.NotifyFilter = NotifyFilters.Size Or NotifyFilters.FileName то ты будешь получать уведомления только если изменится размер или имя. Path - путь к файлу или паке в зависимости от того, за кем надо следить. Ну и события: Changed, Renamed, Deleted, Created. Первое, вызывается для всех типов изменеий, соответствующих настройкам, остальные - только для соответствующих. Все остальное наследовано и к делу не относится. Добавлено через 24 секунды Кстати, а что ты пишешь? |