2015-06-29 2 views
-5

Я создал и текстовый файл, используя (AFL SCRIPTING LANGUAGE), этот скрипт будет обновлять (записывать) в текстовый файл каждые 5 секунд. Я буду пытаться читать файл с помощью vb.net, когда я запускаю визуальную студию кода vb.net, все работает отлично, но (скрипт AFL не может обновить текстовый файл), вот мой код vb.net:множественное программирование пытается получить доступ к тому же текстовому файлу

Dim FILE_NAME As New FileStream("C:\myreport\myfile.TXT", FileMode.Open, FileAccess.Read, FileShare.Read) 

REM Dim FILE_NAME As String = "C:\myreport\myfile.TXT" 

    REM Dim TextLine As String 

    REM If System.IO.File.Exists(FILE_NAME) = True Then 

    Dim objReader As New System.IO.StreamReader(FILE_NAME) 

    Do While objReader.Peek() <> -1 
     MYSTRING(I) = objReader.ReadLine() 
     I = I + 1 
    Loop 

    REM End If 

Когда я запускаю приведенный выше код, (AFL сценарий не может обновлять текстовый файл),

Проще говоря:

Когда я запускаю код vb.net (для доступа к текстовому файлу), Скрипт AFL не может обновиться.

  1. У меня была доля чтения/записи папки (где текстовый файл существует), никакого эффекта, той же проблемы, с которой я столкнулся.
  2. Unchecked «Включить визуальный процесс хостинга студии», проблема еще не решена.
+3

У вас есть серьезные проблемы с форматированием вашего сообщения. И много CAPS. Пожалуйста, переформатируйте. – sstan

+0

Ой, мои уши ... Зачем тебе кричать? –

ответ

0

В .NET класс FileSystemWatcher может помочь вам с этой проблемой. Вы можете читать файл каждый раз, когда наблюдатель файла говорит, что файлы были изменены. Вот для него reference documentation.

0

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

Вам необходимо реализовать какой-то общий механизм блокировки вокруг файла, чтобы ваши две программы не сражались за него. Или, если вы можете гарантировать, что программа-клиент VB.NET будет открывать файл менее чем за 5 секунд, вы можете пойти с MrAxel's solution и просто попросить программу VB.NET читать файл каждый раз, когда он обновляется.

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