Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считать файл и передать в MySQL, Считать файл и передать в MySQL 
:(
    Опции темы
mashutkai
Дата 30.4.2009, 05:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.4.2009

Репутация: нет
Всего: нет



Здравствуйте. Помогите пожалуйста написать такую программу: надо чобы программа каждые 5 секунд считывала файл построчно и если он изменился, записывать новую строку в MySQL на удалённый сервер, а не достающие - удалять.

С начала помогите считать файл в переменную или в массив и вывести хотябы через MsgBox.

Делаю это в VB 2008 Express
PM MAIL   Вверх
-Mikle-
Дата 30.4.2009, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 3
Всего: 59



Во первых, считывание каждые 5 секунд очень плохо. Нужно ловить системное событие об этом моменте. Для таких целей служит компонент FileSystemWatcher, кинешь на форму и разберешься, он прост.

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

В третьих, для самого считывания, нужно иметь переменную Long. Значение переменной будет говорить о последней удачно прочитанной позиции в файле. Ее значение нужно обновлять только тогда, когда ты прочитал строку и записал ее в БД. Значение этой переменной нужно еще сохранить снаружи программы (в настройках или еще где-нить) сразу же, после ее обновления.
Для построчного чтения из файла лучше использовать StreamReader (Imports System.IO).

Надеюсь, что здесь все предельно понятно. Если будет что-то не получаться пиши.

Добавлено через 35 секунд
Кстати, а что ты пишешь?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
mashutkai
Дата 30.4.2009, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.4.2009

Репутация: нет
Всего: нет



Считать у меня получилось, но теперь не могу разобраться с FileSystemWatcher. Можете дать мне какой-нибудь пример плз smile

PM MAIL   Вверх
-Mikle-
Дата 30.4.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 3
Всего: 59



Свойства:

EnableRaisingEvents - нужно для того, чтобы приостановить/продолжить отслеживание. По умолчанию имеет значение True (отслеживать).

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

IncludeSubdirectories - указывает на то, нужно ли включать в отслеживание вложенные папки.

NotifyFilter - набор флагов ограничивающих тип слежения. Допустимо указывать несколько флагов, например, если указать
    FileSystemWatcher1.NotifyFilter = NotifyFilters.Size Or NotifyFilters.FileName
то ты будешь получать уведомления только если изменится размер или имя.

Path - путь к файлу или паке в зависимости от того, за кем надо следить.

Ну и события: Changed, Renamed, Deleted, Created. Первое, вызывается для всех типов изменеий, соответствующих настройкам, остальные - только для соответствующих.

Все остальное наследовано и к делу не относится.

Добавлено через 24 секунды
Кстати, а что ты пишешь?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.