Member 13733422 Ответов: 1

Чтение сохраненного текстового файла все строки


как прочитать сохраненный текстовый файл во всех строках новой формы (например , form3 )

Вот мой код

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim i As Integer = 0
    Dim newForm As Form3 = New Form3
    Dim filepath As String = IO.Path.Combine("D:\Logs", TextBox13.Text + i.ToString() + ".txt")
    Dim readText() As String = File.ReadAllLines(filepath)
    Dim s As String
    newForm.TextBox1.Text = File.ReadAllLines(filepath)
    For Each s In readText
        Console.WriteLine(s)
    Next
End Sub


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

Я попробовал вышеприведенный код пожалуйста предоставьте мне исправление

Maciej Los

Исправить для чего?
В чем твоя проблема?

Richard MacCutchan

Вы смешиваете Winforms с консольным кодом, поэтому он никогда не будет работать. Решите, какой тип приложения вы хотите, и придерживайтесь этого. Вы также пытаетесь прочитать одни и те же данные дважды, так что тратите впустую обработку. И, пожалуйста, не используйте имена Visual Studio по умолчанию для ваших элементов управления, дайте им имена proepr, которые на самом деле что-то значат, а не TextBox1, TextBox13 и т.д.

1 Ответов

Рейтинг:
1

Richard Deeming

На первый взгляд, ваша форма в данный момент отображается System.String[] вместо содержимого файла.

Это потому что ReadAllLines возвращается массив строк, представляющих строки в файле. VB.NET это "услужливо" преобразует его в тот же тип, что и TextBox1.Text - ля String - путем вызова массива ToString метод. Поскольку массивы не переопределяют ToString метод, он просто возвращает имя типа.

Вместо этого, чтобы отобразить содержимое файла, используйте ReadAllText метод:

newForm.TextBox1.Text = File.ReadAllText(filepath)

NB: Вам также нужно будет Show новая форма, иначе она никогда не появится на экране.

Чтобы избежать такого рода проблем, вы должны включить Option Strict, которая предотвратит В. Б. "внимательный" автоматическое приведение типов.


Maciej Los

5ed!