2013-07-10 6 views
1

Я пытаюсь разместить текст из текстового файла в текстовом поле, но текстовое поле остается пустым после выполнения кода. Как я могу это исправить?Загрузка текста из файла в текстовое поле

Dim fileno1 As Integer = FreeFile() 
FileOpen(fileno1, "C:\Users\main computer\Desktop\vb test\gyn-obs-D.txt", OpenMode.Input, OpenAccess.Read, OpenShare.Shared) 
Dim y As Boolean = 0 
Dim c = 0 
TextBox1.Text = "1" 
Do While Not EOF(fileno1) 
    c += 1 
    Dim txt As String = LineInput(fileno1) 
    Debug.WriteLine(txt) 
    Dim inputString As String = txt 

    TextBox1.Text = txt 
    If c = 40 Then 
     y = 1 
     Exit Do 
    End If 
    write1(inputString, y) 
Loop 
FileClose(fileno1) 

редактировать: я добавил этот класс, но все-таки что-то неправильно

', конечно, эти два рядом находятся на верхней Imports System Imports System.IO

Class Test 
    Public Shared Sub Main() 
     Try 
      ' Create an instance of StreamReader to read from a file. 
      ' The using statement also closes the StreamReader. 
      Using sr As New StreamReader("TestFile.txt") 
       Dim line As String 
       ' Read and display lines from the file until the end of 
       ' the file is reached. 
       Do 
        line = sr.ReadLine() 
        If Not (line Is Nothing) Then 
         Console.WriteLine(line) 
        End If 
         textbox1.text=line 
       Loop Until line Is Nothing 
      End Using 
     Catch e As Exception 
      ' Let the user know what went wrong. 
      Console.WriteLine("The file could not be read:") 
      Console.WriteLine(e.Message) 
     End Try 
    End Sub 
End Class 
+0

Что это за «EOF (fileno1)»? –

+0

Конец файла, @FabianBigler. –

+0

@ DaveH cheers :) –

ответ

0
TextBox1.Text = txt 

Эта линия будет эффективно устранять то, что у вас было в текстовом поле с содержимым txt. Я предполагаю, что 40-я строка вашего входного файла является пустой строкой. Таким образом текстовое поле выглядит пустым.

Вы должны сделать что-то в линиях:

TextBox1.Text = TextBox1.Text + txt + Environment.NewLine 

Некоторые указатели на ваш текущий код:

  • Проверьте на Option Strict. Он может быть включен в окне свойств вашего проекта и обеспечивает более высокое качество произведенного кода.

  • Такие функции, как EOF, и подобные кажется старым функциями VB, перенесенными в .NET. Посмотрите в Using the System.IO namespace to read text from a file

+0

Если он фактически использует VB 6, а не (что кажется более вероятным), этот ответ не будет особенно полезен. В VB 6 нет «Environment.NewLine», это константа 'vbNewLine'. И нет «Option Strict», хотя «Option Explicit» должен быть в верхней части всех исходных файлов. –

+0

Оригинальный вопрос был отмечен vb.net, но был изменен тем временем. Факт остается фактом, что содержимое TextBox1.Text перезаписывается в каждом цикле. 'vbNewLine' вместо' Environment.Newline', и мы будем рады. – Hemario

+0

Я не критикую ваш ответ, я знаю, что вопрос неясен. Просто добавьте дополнительную информацию, если это VB 6. –

0

Просто сделать это,

Private Sub Command1_Click() 
Open "C:\Users\reserve.txt" For Input As #1 
Dim filesize As Integer 
filesize = LOF(1) 
textbox1 = Input(filesize, #1) 
Close #1 
End Sub 

Или,

Private Sub Command1_Click() 
Dim variable1 As String 
Open "C:\Users\reserve.txt" For Input As #1 
Input #1, variable1 
textbox1.Text = variable1 
Close #1 
End Sub 

Или см How to display the text file while clicking the button

+0

thats vb6, thats not working –

+0

См. Обновленный ответ. – ridoy

+0

Я использовал код wrox, rod –

0

Вот простой способ в VB.net :

Try 
     For Each s As String In System.IO.File.ReadAllLines("C:\Users\main _ 
             computer\Desktop\vb test\gyn-obs-D.txt") 
      TextBox1.AppendText(s + vbNewLine) 
     Next 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 

Таким образом, если есть какие-либо изменения в изготовлении или линии, которые вы не хотите, у вас есть опция.

1

Как насчет

TextBox.Text = System.IO.File.ReadAllText("C:\Users\main computer\Desktop\vb test\gyn-obs-D.txt") 

Если это слишком долго

TextBox.Text = System.IO.File.ReadAllText("C:\Users\main computer\Desktop\vb test\gyn-obs-D.txt").Substring(0,1000) 
0

Я figuare это, когда я выходные данные в текстовое поле очень быстро, это буду не появляться

-1

«Easy Code ..................... От Juman Dim b As String b = System.IO.File.ReadAllText («Адрес файла здесь»)

  MessageBox.Show(b.ToString()) 
Смежные вопросы