Member 13981494 Ответов: 1

Не удается прочитать содержимое VB.NET текстовый файл


Re: VB .Net query (Visual Studio 2017 версии 15.7.5)

Дорогие Все

Извините, что спрашиваю, но не будете ли вы так благодарны за вашу помощь?

Я пытаюсь проверить, были ли записаны данные в текстовый файл, записанный на диск с помощью Visual Studio 2017. Когда я открываю текстовый файл, чтобы проверить содержимое текстового файла Блокнота, он пуст. Тот самый names.txt файл находится на моем жестком диске Windows 10.

Пожалуйста, не могли бы вы посоветовать и любезно посмотреть ниже?

Спасибо.

Наилучшие пожелания


Сценарий ниже
Imports System.IO
Public Class Form1
   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
      Dim names As String() = New String() {"Person 1", "Person 2", "Person 3", "Person"}
      Dim s As String
      Using sw As StreamWriter = New StreamWriter("C:\Users\user\source\repos\WindowsApp - Examples\WindowsApp5\names.txt")
         For Each s In names
            sw.WriteLine(s)
         Next s
         sw.Close()
      End Using

      ' Read and show each line from the file. 
      Dim line As String
      Using sr As StreamReader = New StreamReader("C:\Users\user\source\repos\WindowsApp - Examples\WindowsApp5\names.txt")
         line = sr.ReadLine()
         While (line <> Nothing)

            MessageBox.Show(line)
            line = sr.ReadLine()
         End While
         sr.Close()
      End Using
   End Sub
End Class


Что я уже пробовал:

Дорогие Все,

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

Спасибо

1 Ответов

Рейтинг:
0

OriginalGriff

Когда я создаю новый проект и помещаю в него ваш код:

Imports System.IO

Public Class Form1
    Private Sub MyButton_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim names As String() = New String() {"Person 1", "Person 2", "Person 3", "Person"}
        Dim s As String
        Using sw As StreamWriter = New StreamWriter("D:\Temp\names.txt")
            For Each s In names
                sw.WriteLine(s)
            Next s
            sw.Close()
        End Using

        ' Read and show each line from the file. 
        Dim line As String
        Using sr As StreamReader = New StreamReader("D:\Temp\names.txt")
            line = sr.ReadLine()
            While (line <> Nothing)

                MessageBox.Show(line)
                line = sr.ReadLine()
            End While
            sr.Close()
        End Using
    End Sub
End Class
Это работает: я получаю четыре мессенджера, по одному для каждой строки.

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

Поставьте точку останова на линии
Dim names As String() = New String() {"Person 1", "Person 2", "Person 3", "Person"}
и запустите свой код в отладчике. Когда он достигнет точки останова, ваше приложение остановится и передаст управление вам. По одному шагу в каждой строке и следите за тем, что происходит - при предположении, что код вообще не выполняется, или он не завершается из-за ошибки, которую вы проглатываете или игнорируете.